Methods and apparatuses for cross-component prediction

ABSTRACT

Example implementations include a method, apparatus and computer-readable medium of video coding, comprising receiving the code block and one or more neighbor samples and determining the value of beta based on at least one of an average chroma value, a midrange chroma value, a median chroma value, an average luma value, a midrange luma value, or a median luma value of two or more neighbor samples.

BACKGROUND

The present disclosure relates generally to video coding, and moreparticularly, to performing cross-component prediction of samples in acoding block.

SUMMARY

The following presents a simplified summary of one or more aspects inorder to provide a basic understanding of such aspects. This summary isnot an extensive overview of all contemplated aspects, and is intendedto neither identify key or critical elements of all aspects nordelineate the scope of any or all aspects. Its sole purpose is topresent some concepts of one or more aspects in a simplified form as aprelude to the more detailed description that is presented later.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video, anoffset parameter of a cross-component prediction model that is based ona derived sample value from two or more neighbor samples of the currentvideo block and performing the conversion based on the determining.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a multiple-model cross-component prediction mode and a bitstream ofthe video, a scaling parameter associated with a model or a group isdependent on neighbor samples of the current video block associated withthe model or the group and performing the conversion based on thedetermining.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video,model parameters for a cross-component prediction model for the currentvideo block and performing the conversion based on the determining,wherein during the determining, resampling more than one row of neighborsamples of the current video block or more than one column of neighborsamples of the current video block is applied.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video,model parameters for a cross-component prediction model for the currentvideo block, and performing the conversion based on the determining,wherein the model parameters are based on neighboring samples of thecurrent video block, wherein at least one of a number or positions ofthe neighboring samples are dependent on at least one of a block widthor a block height of the current video block.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video,model parameters for a cross-component prediction model for the currentvideo block and performing the conversion based on the determining,wherein the model parameters are based on neighboring samples of thecurrent video block, wherein at least one of a number or positions ofthe neighboring samples are dependent on at least one of a block widthor a block height of the current video block.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video,model parameters for a cross-component prediction model for the currentvideo block and performing the conversion based on the determining,wherein, during the determining, performing a bit-depth shift operationis applied.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video,model parameters for a cross-component prediction model for the currentvideo block using a non-linear model and performing the conversion basedon the determining.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video,model parameters for a cross-component prediction model for the currentvideo block and performing the conversion based on the determining,wherein, during the determining, selecting neighbor samples for across-component prediction is applied.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video,model parameters for a cross-component prediction model for the currentvideo block, performing the conversion based on the determining,wherein, during the determining, filtering neighbor samples for across-component prediction is applied.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block and abitstream of the video, utilizing one or more models for across-component prediction associated with a cross-component predictionmode and performing the conversion based on the determining andperforming the conversion based on the determining.

Aspects of the present disclosure include determining, for a conversionbetween a current video block of a video that is a chroma block and abitstream of the video, a first prediction for the current video blockbased on a first model for a cross-component prediction associated witha cross-component prediction mode and a second prediction for thecurrent video block based on a second model for a non-cross-componentprediction associated with a non-cross-component prediction mode andperforming the conversion based on the determining.

To the accomplishment of the foregoing and related ends, the one or moreaspects include the features hereinafter fully described andparticularly pointed out in the claims. The following description andthe annexed drawings set forth in detail some illustrative features ofthe one or more aspects. These features are indicative, however, of buta few of the various ways in which the principles of various aspects maybe employed, and this description is intended to include all suchaspects and their equivalents.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram that illustrates an example of a video codingsystem, in accordance with some aspects of the present disclosure.

FIG. 2 is a block diagram that illustrates a first example of a videoencoder, in accordance with some aspects of the present disclosure.

FIG. 3 is a block diagram that illustrates an example of a videodecoder, in accordance with some aspects of the present disclosure.

FIG. 4 is a block diagram that illustrates a second example of a videoencoder, in accordance with some aspects of the present disclosure.

FIG. 5 is an example of an encoder block diagram of versatile videocoding (VVC) in accordance with some aspects of the present disclosure.

FIG. 6 is a schematic diagram of intra mode coding with 67intra-prediction modes to capture the arbitrary edge directionspresented in natural video in accordance with some aspects of thepresent disclosure.

FIGS. 7 and 8 are reference example diagrams of wide-angularintra-prediction in accordance with some aspects of the presentdisclosure.

FIG. 9 is a diagram of discontinuity in case of directions that exceed45° angle in accordance with some aspects of the present disclosure.

FIG. 10 is a schematic diagram of location of the samples used for thederivation of α and β for the chroma in accordance with some aspects ofthe present disclosure.

FIG. 11 is a schematic diagram of location of the samples used for thederivation of α and β for the luma in accordance with some aspects ofthe present disclosure.

FIGS. 12-15 illustrate examples of reference samples (Rx,−1 and R−1,y)for PDPC applied over various prediction modes in accordance with someaspects of the present disclosure.

FIG. 16 is a diagram of multiple reference line (MRL) intra-predictionused in accordance with aspects of the present disclosure.

FIGS. 17 and 18 are example diagrams and of an intra sub-partitions(ISP) that divides luma intra-predicted blocks vertically orhorizontally into sub-partitions depending on the block size inaccordance with some aspects of the present disclosure.

FIG. 19 is a diagram of a matrix weighted intra-prediction process (MIP)method for VVC in accordance with some aspects of the presentdisclosure.

FIG. 20 is a diagram of a template based intra mode derivation where thetarget denotes the current block (of block size N) for whichintra-prediction mode is to be estimated in accordance with some aspectsof the present disclosure.

FIG. 21 is a diagram of a template of a set of chosen pixels on which agradient analysis may be performed based on intra-prediction modederivation in accordance with some aspects of the present disclosure.

FIG. 22 is a diagram of a convolution of a 3×3 sobel gradient filterwith the template in accordance with aspects of the present disclosure.

FIG. 23 is a diagram of an example of intra mode coding in accordancewith some aspects of the present disclosure.

FIG. 24 is a diagram of an example template including a left-abovesub-template in accordance with some aspects of the present disclosure.

FIG. 25 is a diagram of an example template including a leftsub-template and an above sub-template in accordance with some aspectsof the present disclosure.

FIG. 26 is a diagram of an example template including an abovesub-template in accordance with some aspects of the present disclosure.

FIG. 27 is a diagram of an example template including a leftsub-template in accordance with some aspects of the present disclosure.

FIG. 28 is a diagram of an example template including a leftsub-template and a left-below sub-template in accordance with someaspects of the present disclosure.

FIG. 29 is a diagram of an example template including an abovesub-template and a right-above sub-template in accordance with someaspects of the present disclosure.

FIG. 30 is a diagram of an example template including a leftsub-template, a left-below sub-template, an above sub-template, and aright-above sub-template in accordance with some aspects of the presentdisclosure.

FIG. 31 is a diagram of an example template including a left-abovesub-template, a left sub-template, a left-below sub-template, an abovesub-template, and a right-above sub-template in accordance with someaspects of the present disclosure.

FIG. 32 is a diagram of an example template including sub-templates thatare spaced apart from a target block in accordance with some aspects ofthe present disclosure.

FIG. 33 is a diagram of example template-reference samples for atemplate including a left-above sub-template, a left sub-template, andan above sub-template in accordance with some aspects of the presentdisclosure.

FIG. 34 is a diagram of example template-reference samples for atemplate including a left sub-template and an above sub-template inaccordance with some aspects of the present disclosure.

FIG. 35 is a diagram of example template-reference samples for atemplate including an above sub-template in accordance with some aspectsof the present disclosure.

FIG. 36 is a diagram of example template-reference samples for atemplate including a left sub-template in accordance with some aspectsof the present disclosure.

FIG. 37 is a diagram of example template-reference samples with ahorizontal gap for a template including an above sub-template inaccordance with some aspects of the present disclosure.

FIG. 38 is a diagram of example template-reference samples with avertical gap for a template including an above sub-template inaccordance with some aspects of the present disclosure.

FIG. 39 is a diagram of example template-reference samples with avertically shifted portion for a template in accordance with someaspects of the present disclosure.

FIG. 40 is a diagram of example template-reference samples with ahorizontally shifted portion for a template in accordance with someaspects of the present disclosure.

FIG. 41 is a diagram of an example cross-component predictor inaccordance with some aspects of the present disclosure.

FIG. 42 is a flowchart of a first example method of deriving beta inaccordance with some aspects of the present disclosure.

FIG. 43 is a flowchart of a second example method of deriving beta inaccordance with some aspects of the present disclosure

FIG. 44 is a flowchart of a first example method of cross-componentprediction in accordance with some aspects of the present disclosure.

FIG. 45 is a flowchart of a second example method of cross-componentprediction in accordance with some aspects of the present disclosure.

FIG. 46 is a flowchart of a third example method of cross-componentprediction in accordance with some aspects of the present disclosure.

FIG. 47 is a flowchart of a fourth example method of cross-componentprediction in accordance with some aspects of the present disclosure.

FIG. 48 is a flowchart of a fifth example method of cross-componentprediction in accordance with some aspects of the present disclosure.

FIG. 49 is a flowchart of a first example method of neighbor selectionin accordance with some aspects of the present disclosure.

FIG. 50 is a flowchart of a second example method of neighbor selectionin accordance with some aspects of the present disclosure.

FIG. 51 is a flowchart of an example method of multi-modelcross-component prediction in accordance with some aspects of thepresent disclosure.

FIG. 52 is a flowchart of an example method of integrating models forcross-component prediction with non-cross-component prediction models inaccordance with some aspects of the present disclosure.

DETAILED DESCRIPTION

The detailed description set forth below in connection with the appendeddrawings is intended as a description of various configurations and isnot intended to represent the only configurations in which the conceptsdescribed herein may be practiced. The detailed description includesspecific details for the purpose of providing a thorough understandingof various concepts. However, it will be apparent to a person havingordinary skill in the art that these concepts may be practiced withoutthese specific details. In some instances, structures and components areshown in block diagram form in order to avoid obscuring such concepts.

Several aspects of video coding and decoding will now be presented withreference to various apparatus and methods. These apparatus and methodswill be described in the following detailed description and illustratedin the accompanying drawings by various blocks, components, circuits,processes, algorithms, among other examples (collectively referred to as“elements”). These elements may be implemented using electronichardware, computer software, or any combination thereof. Whether suchelements are implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem.

By way of example, an element, or any portion of an element, or anycombination of elements may be implemented as a “processing system” thatincludes one or more processors. Examples of processors includemicroprocessors, microcontrollers, graphics processing units (GPUs),central processing units (CPUs), application processors, digital signalprocessors (DSPs), reduced instruction set computing (RISC) processors,systems on a chip (SoC), baseband processors, field programmable gatearrays (FPGAs), programmable logic devices (PLDs), state machines, gatedlogic, discrete hardware circuits, and other suitable hardwareconfigured to perform the various functionality described throughoutthis disclosure. One or more processors in the processing system mayexecute software. Software shall be construed broadly to meaninstructions, instruction sets, code, code segments, program code,programs, subprograms, software components, applications, softwareapplications, software packages, routines, subroutines, objects,executables, threads of execution, procedures, functions, among otherexamples, whether referred to as software, firmware, middleware,microcode, hardware description language, or otherwise.

Accordingly, in one or more examples, the functions described may beimplemented in hardware, software, or any combination thereof. Ifimplemented in software, the functions may be stored on or encoded asone or more instructions or code on a computer-readable medium.Computer-readable media includes computer storage media. Storage mediamay be any available media that can be accessed by a computer. By way ofexample, and not limitation, such computer-readable media can include arandom-access memory (RAM), a read-only memory (ROM), an electricallyerasable programmable ROM (EEPROM), optical disk storage, magnetic diskstorage, other magnetic storage devices, combinations of theaforementioned types of computer-readable media, or any other mediumthat can be used to store computer executable code in the form ofinstructions or data structures that can be accessed by a computer.

The present aspects generally relates to cross-component prediction(CCP). In conventional video encoding/decoding, two parameters, i.e.,alpha and beta, are derived for a linear model of CCP. The derivation ofbeta is based on the minimum luma value and its associated chroma valuefrom neighbor samples. An aspect of the present disclosure includesderiving beta using one or more methods discussed below. Another aspectof the present disclosure includes using other models, includingnon-linear models, to derive alpha and/or beta as discussed below. Insome aspects of the present disclosure, methods for selecting neighborsused in models for CCP are discussed below. In an aspect of the presentdisclosure, methods for using CCP models in combination with non-CCPmodels may be implemented for CCP.

FIG. 1 is a block diagram that illustrates an example of a video codingsystem 100 that may utilize the techniques of this disclosure. As shownin FIG. 1 , video coding system 100 may include a source device 110 anda destination device 120. The source device 110, which may be referredto as a video encoding device, may generate encoded video data. Thedestination device 120, which may be referred to as a video decodingdevice, may decode the encoded video data generated by the source device110. The source device 110 may include a video source 112, a videoencoder 114, and an input/output (I/O) interface 116.

The video source 112 may include a source such as a video capturedevice, an interface to receive video data from a video contentprovider, and/or a computer graphics system for generating video data,or a combination of such sources. The video data may comprise one ormore pictures or images. The terms “picture,” “image,” or “frame” can beused interchangeably throughout to refer to a single image in a streamof images that produce a video. The video encoder 114 encodes the videodata from the video source 112 to generate a bitstream. The bitstreammay include a sequence of bits that form a coded representation of thevideo data. The bitstream may include coded pictures and associateddata. The coded picture is a coded representation of a picture. Theassociated data may include sequence parameter sets, picture parametersets, and other syntax structures. The I/O interface 116 may include amodulator/demodulator (modem) and/or a transmitter, a bus, orsubstantially any mechanism that facilitates transfer of data betweendevices or within a computing device that may include both the sourcedevice 110 and destination device 120 (e.g., where the computing devicestores the encoded video generated using functions of the source device110 for display using functions of the destination device 120). In oneexample, the encoded video data may be transmitted directly todestination device 120 via the I/O interface 116 through the network 130a. The encoded video data may also be stored onto a storagemedium/server 130 b for access by destination device 120.

The destination device 120 may include an I/O interface 126, a videodecoder 124, and a display device 122. The I/O interface 126 may includea receiver and/or a modem, a bus, or substantially any mechanism thatfacilitates transfer of data between devices or within a computingdevice. The I/O interface 126 may acquire encoded video data from thesource device 110 or the storage medium/server 130 b. The video decoder124 may decode the encoded video data. The display device 122 maydisplay the decoded video data to a user. The display device 122 may beintegrated with the destination device 120, or may be external to thedestination device 120 which be configured to interface with an externaldisplay device.

The video encoder 114 and the video decoder 124 may operate according toa video compression standard, such as the HEVC standard, VVC standardand other current and/or further standards.

FIG. 2 is a block diagram illustrating an example of a video encoder200, which may be an example of the video encoder 114 in the system 100illustrated in FIG. 1 , in accordance with some aspects of the presentdisclosure.

The video encoder 200 may be configured to perform any or all of thetechniques of this disclosure. In the example of FIG. 2 , the videoencoder 200 includes a plurality of functional components. Thetechniques described in this disclosure may be shared among the variouscomponents of the video encoder 200. In some examples, a processor maybe configured to perform any or all of the techniques described in thisdisclosure, including those of video encoder 200.

The functional components of video encoder 200 may include one or moreof a partition unit 201, a prediction unit 202 which may include a modeselect unit 203, a motion estimation unit 204, a motion compensationunit 205 and an intra-prediction unit 206, a residual generation unit207, a transform unit 208, a quantization unit 209, an inversequantization unit 210, an inverse transform unit 211, a reconstructionunit 212, a buffer 213, and an entropy encoding unit 214.

In other examples, the video encoder 200 may include more, fewer, ordifferent functional components. In an example, the prediction unit 202may include an intra block copy (IBC) unit. The IBC unit may performprediction in an IBC mode in which at least one reference picture is apicture where the current video block is located.

Furthermore, some components, such as the motion estimation unit 204 andthe motion compensation unit 205, may be highly integrated, but areseparately represented in the example of FIG. 2 for purposes ofexplanation.

The partition unit 201 may partition a picture into one or more videoblocks. The video encoder 200 and the video decoder 300 may supportvarious video block sizes.

The mode select unit 203 may select one of the coding modes, intra orinter, e.g., based on error results, and provide the resulting intra- orinter-coded block to at least one of a residual generation unit 207 togenerate residual block data and to a reconstruction unit 212 toreconstruct the encoded block for use as a reference picture. In someexamples, the mode select unit 203 may select a combination of intra-and inter-prediction (CIIP) mode in which the prediction is based on aninter-prediction signal and an intra-prediction signal. The mode selectunit 203 may also select a resolution for a motion vector (e.g., asub-pixel or integer pixel precision) for the block in the case ofinter-prediction.

To perform inter-prediction on a current video block, the motionestimation unit 204 may generate motion information for the currentvideo block by comparing one or more reference frames from buffer 213 tothe current video block. In an example, each reference frame cancorrespond to a picture of the video. The motion compensation unit 205may determine a predicted video block for the current video block basedon the motion information and decoded samples of pictures from thebuffer 213 other than the picture associated with the current videoblock.

The motion estimation unit 204 and the motion compensation unit 205 mayperform different operations for a current video block, for example,depending on whether the current video block is in an I-slice, aP-slice, or a B-slice. As used herein, in some aspects, an “I-slice” mayrefer to a portion of a picture composed of macroblocks, all of whichare based upon macroblocks within the same picture. Further, as usedherein, in some aspects, “P-slices” and “B-slices” may refer to portionsof a picture composed of macroblocks that are not dependent onmacroblocks in the same picture.

In some examples, the motion estimation unit 204 may performuni-directional prediction for the current video block, and the motionestimation unit 204 may search reference pictures of list 0 or list 1for a reference video block for the current video block. The motionestimation unit 204 may then generate a reference index that indicatesthe reference picture in list 0 or list 1 that contains the referencevideo block and a motion vector that indicates a spatial displacementbetween the current video block and the reference video block. Themotion estimation unit 204 may output the reference index, a predictiondirection indicator, and the motion vector as the motion information ofthe current video block. The motion compensation unit 205 may generatethe predicted video block of the current block based on the referencevideo block indicated by the motion information of the current videoblock.

In other examples, the motion estimation unit 204 may performbi-directional prediction for the current video block, where the motionestimation unit 204 may search the reference pictures in list 0 for areference video block for the current video block and may also searchthe reference pictures in list 1 for another reference video block forthe current video block. The motion estimation unit 204 may thengenerate reference indexes that indicate the reference pictures in list0 and list 1 containing the reference video blocks and motion vectorsthat indicate spatial displacements between the reference video blocksand the current video block. The motion estimation unit 204 may outputthe reference indexes and the motion vectors of the current video blockas the motion information of the current video block. The motioncompensation unit 205 may generate the predicted video block of thecurrent video block based on the reference video blocks indicated by themotion information of the current video block.

In some examples, the motion estimation unit 204 may output a full setof motion information for decoding processing of a decoder.

In some examples, the motion estimation unit 204 may not output a fullset of motion information for the current video. Rather, the motionestimation unit 204 may signal the motion information of the currentvideo block with reference to the motion information of another videoblock. For example, the motion estimation unit 204 may determine thatthe motion information of the current video block is sufficientlysimilar to the motion information of a neighboring video block.

In one example, the motion estimation unit 204 may indicate, in a syntaxstructure associated with the current video block, a value thatindicates to the video decoder 300 that the current video block has thesame motion information as the another video block.

In another example, the motion estimation unit 204 may identify, in asyntax structure associated with the current video block, another videoblock and a motion vector difference (MVD). The motion vector differenceindicates a difference between the motion vector of the current videoblock and the motion vector of the indicated video block. The videodecoder 300 may use the motion vector of the indicated video block andthe motion vector difference to determine the motion vector of thecurrent video block.

As discussed above, video encoder 200 may predictively signal the motionvector. Two examples of predictive signaling techniques that may beimplemented by video encoder 200 include advanced motion vectorprediction (AMVP) and merge mode signaling.

The intra-prediction unit 206 may perform intra-prediction on thecurrent video block. When the intra-prediction unit 206 performsintra-prediction on the current video block, the intra-prediction unit206 may generate prediction data for the current video block based ondecoded samples of other video blocks in the same picture. Theprediction data for the current video block may include at least one ofa predicted video block or one or more syntax elements.

The residual generation unit 207 may generate residual data for thecurrent video block by subtracting (e.g., indicated by the minus sign)the predicted video block(s) of the current video block from the currentvideo block. The residual data of the current video block may includeresidual video blocks that correspond to different sample components ofthe samples in the current video block.

In other examples, there may be no residual data for the current videoblock for the current video block, for example in a skip mode, and theresidual generation unit 207 may not perform the subtracting operation.

The transform processing unit 208 may generate one or more transformcoefficient video blocks for the current video block by applying one ormore transforms to a residual video block associated with the currentvideo block.

After the transform processing unit 208 generates a transformcoefficient video block associated with the current video block, thequantization unit 209 may quantize the transform coefficient video blockassociated with the current video block based on one or morequantization parameter (QP) values associated with the current videoblock.

The inverse quantization unit 210 and the inverse transform unit 211 mayapply inverse quantization and inverse transforms to the transformcoefficient video block, respectively, to reconstruct a residual videoblock from the transform coefficient video block. The reconstructionunit 212 may add the reconstructed residual video block to correspondingsamples from one or more predicted video blocks generated by theprediction unit 202 to produce a reconstructed video block associatedwith the current block for storage in the buffer 213.

After the reconstruction unit 212 reconstructs the video block, loopfiltering operation may be performed to reduce video blocking artifactsin the video block.

The entropy encoding unit 214 may receive data from other functionalcomponents of the video encoder 200. When entropy encoding unit 214receives the data, entropy encoding unit 214 may perform one or moreentropy encoding operations to generate entropy encoded data and outputa bitstream that includes the entropy encoded data.

FIG. 3 is a block diagram illustrating an example of video decoder 300,which may be an example of the video decoder 124 in the system 100illustrated in FIG. 1 , in accordance with some aspects of the presentdisclosure.

The video decoder 300 may be configured to perform any or all of thetechniques of this disclosure. In the example of FIG. 3 , the videodecoder 300 includes a plurality of functional components. Thetechniques described in this disclosure may be shared among the variouscomponents of the video decoder 300. In some examples, a processor maybe configured to perform any or all of the techniques described in thisdisclosure, including those of video decoder 300.

In the example of FIG. 3 , the video decoder 300 includes one or more ofan entropy decoding unit 301, a motion compensation unit 302, anintra-prediction unit 303, an inverse quantization unit 304, an inversetransformation unit 305, a reconstruction unit 306, and a buffer 307.The video decoder 300 may, in some examples, perform a decoding passgenerally reciprocal to the encoding pass described with respect tovideo encoder 200 (FIG. 2 ).

The video decoder 300 may receive, via the entropy decoding unit 301 orotherwise, an encoded bitstream. The encoded bitstream may includeentropy coded video data (e.g., encoded blocks of video data). In thisexample, the entropy decoding unit 301 may decode the entropy codedvideo data. Based on the decoded video data, whether entropy decoded orotherwise, the motion compensation unit 302 may determine motioninformation including motion vectors, motion vector precision, referencepicture list indexes, and other motion information. The motioncompensation unit 302 may, for example, determine such information byperforming the AMVP and merge mode. AMVP may be used, includingderivation of several most probable candidates based on data fromadjacent PBs and the reference picture. Motion information typicallyincludes the horizontal and vertical motion vector displacement values,one or two reference picture indices, and, in the case of predictionregions in B slices, an identification of which reference picture listis associated with each index. As used herein, in some aspects, a “mergemode” may refer to deriving the motion information from spatially ortemporally neighboring blocks.

The motion compensation unit 302 may produce motion compensated blocks,possibly performing interpolation based on interpolation filters.Identifiers for interpolation filters to be used with sub-pixelprecision may be included in syntax elements received with the encodedbitstream or in separate assistance information, e.g., as specified by avideo encoder when encoding the video.

The motion compensation unit 302 may use interpolation filters as usedby video encoder 200 during encoding of the video block to calculateinterpolated values for sub-integer pixels of a reference block. Themotion compensation unit 302 may determine the interpolation filtersused by video encoder 200 according to received syntax information anduse the interpolation filters to produce predictive blocks.

The motion compensation unit 302 may use some of the syntax informationto determine sizes of blocks used to encode frame(s) and/or slice(s) ofthe encoded video sequence, partition information that describes howeach macroblock of a picture of the encoded video sequence ispartitioned, modes indicating how each partition is encoded, one or morereference frames (and reference frame lists) for each inter-encodedblock, and other information to decode the encoded video sequence. Asused herein, in some aspects, a “slice” may refer to a data structurethat can be decoded independently from other slices of the same picture,in terms of entropy coding, signal prediction, and residual signalreconstruction. A slice can either be an entire picture or a region of apicture.

The intra-prediction unit 303 may use intra-prediction modes for examplereceived in the bitstream to form a prediction block from spatiallyadjacent blocks. Intra-prediction can be referred to herein as “intra,”and/or intra-prediction modes can be referred to herein as “intra modes”The inverse quantization unit 304 inverse quantizes, i.e., de-quantizes,the quantized video block coefficients provided in the bitstream anddecoded by entropy decoding unit 301. Inverse transform unit 305 appliesan inverse transform.

The reconstruction unit 306 may sum the residual blocks with thecorresponding prediction blocks generated by motion compensation unit202 or intra-prediction unit 303 to form decoded blocks. If desired, adeblocking filter may also be applied to filter the decoded blocks inorder to remove blockiness artifacts. The decoded video blocks are thenstored in buffer 307, which provides reference blocks for subsequentmotion compensation/intra-prediction and also produces decoded video forpresentation on a display device.

Although the following description may be focused on High EfficiencyVideo Coding (HEVC), and/or the standard Versatile Video Coding (VVC),the concepts described herein may be applicable to other codingstandards or video codec.

FIG. 4 shows an example of a block diagram of a HEVC video encoder anddecoder 400, which may be the video encoder 114 and video decoder 124 inthe system 100 illustrated in FIG. 1 , video encoder 200 in FIG. 2 andvideo decoder 300 in FIG. 3 , etc., in accordance with some aspects ofthe present disclosure. The encoding algorithm for generatingHEVC-compliant bitstreams may proceed as follows. Each picture can bedivided into block regions (e.g., coding tree units (CTUs)), and theprecise block division may be transmitted to the decoder. A CTU consistsof a luma coding tree block (CTB) and the corresponding chroma CTBs andsyntax elements. The size L×L of a luma CTB can be chosen as L=16, 32,or 64 samples, where the larger sizes can enable higher compression.HEVC then supports a partitioning of the CTBs into smaller blocks usinga tree structure and quadtree-like signaling. The quadtree syntax of theCTU specifies the size and positions of its luma and chroma CBs. Theroot of the quadtree is associated with the CTU. Hence, the size of theluma CTB is the largest supported size for a luma CB. The splitting of aCTU into luma and chroma CBs may be jointly signaled. One luma CB andordinarily two chroma CBs, together with associated syntax, form acoding unit (CU). A CTB may contain only one CU or may be split to formmultiple CUs, and each CU has an associated partitioning into predictionunits (PUs) and a tree of transform units (TUs).

The first picture of the video sequence (and/or the first picture ateach clean random access point that enters the video sequence) can useonly intra-picture prediction, which uses region-to-region spatial dataprediction within the same picture, but does not rely on other picturesto encode the first picture. For the remaining pictures betweensequential or random access points, the inter-picture temporalprediction coding mode may be used for most blocks. The encoding processfor inter-picture prediction includes selecting motion data including aselected reference picture and a motion vector (MV) to be applied topredict samples of each block.

The decision whether to code a picture area using inter-picture orintra-picture prediction can be made at the CU level. A PU partitioningstructure has its root at the CU level. Depending on the basicprediction-type decision, the luma and chroma CBs can then be furthersplit in size and predicted from luma and chroma prediction blocks(PBs). HEVC supports variable PB sizes from 64×64 down to 4×4 samples.The prediction residual is coded using block transforms. A TU treestructure has its root at the CU level. The luma CB residual may beidentical to the luma transform block (TB) or may be further split intosmaller luma TBs. The same applies to the chroma TBs.

The encoder and decoder may apply motion compensation (MC) by using MVand mode decision data to generate the same inter-picture predictionsignal, which is transmitted as auxiliary information. The residualsignal of intra-picture or inter-picture prediction can be transformedby linear spatial transformation, which is the difference between theoriginal block and its prediction. Then the transform coefficients canbe scaled, quantized, entropy encoded, and transmitted together with theprediction information.

The encoder can duplicate the decoder processing loop so that both cangenerate the same prediction for subsequent data. Therefore, thequantized transform coefficients can be constructed by inverse scaling,and then can be inversely transformed to replicate the decodingapproximation of the residual signal. The residual can then be added tothe prediction, and the result of this addition can then be fed into oneor two loop filters to smooth the artifacts caused by block-by-blockprocessing and quantization. The final picture representation (i.e., thecopy output by the decoder) can be stored in the decoded picture bufferfor prediction of subsequent pictures. In general, the order of encodingor decoding processing of pictures may be different from the order inwhich they arrive from the source. As such, in some examples, it may benecessary to distinguish between the decoding order of the decoder (thatis, the bit stream order) and the output order (that is, the displayorder).

Video material encoded by HEVC can be input as a progressive image(e.g., because the source video originates from this format or isgenerated by de-interlacing before encoding). There is no explicitcoding feature in the HEVC design to support the use of interlacedscanning, because interlaced scanning is no longer used for displays andbecomes very uncommon for distribution. However, metadata syntax hasbeen provided in HEVC to allow the encoder to indicate that it has beensent by encoding each area of the interlaced video (i.e., even or oddlines of each video frame) into a separate picture interlaced video, orby encoding each interlaced frame as a HEVC encoded picture to indicatethat it has been sent. This can provide an effective method for encodinginterlaced video without the need to support special decoding processesfor it.

FIG. 5 is an example of an encoder block diagram 500 of VVC, which caninclude multiple in-loop filtering blocks: e.g., deblocking filter (DF),sample adaptive offset (SAO) adaptive loop filter (ALF), etc. Unlike DF,which uses predefined filters, SAO and ALF may utilize the originalsamples of the current picture to reduce the mean square errors betweenthe original samples and the reconstructed samples by adding an offsetand by applying a finite impulse response (FIR) filter, respectively,with coded side information signaling the offsets and filtercoefficients. ALF may be located at the last processing stage of eachpicture and can be regarded as a tool to catch and fix artifacts createdby the previous stages.

FIG. 6 is a schematic diagram 600 of intra-prediction mode coding with67 intra-prediction modes to capture the arbitrary edge directionspresented in natural video. In some examples, the number of directionalintra modes may be extended from 33, as used in HEVC, to 65 while theplanar and the DC modes remain the same.

In some examples, the denser directional intra-prediction modes mayapply for the block sizes and for both luma and chromaintra-predictions. In the HEVC, every intra-prediction mode coded blockmay include a square shape (e.g., a coded block of size N×N) and thelength of each of its side may be a power of 2 (e.g., where N is a powerof 2). Thus, no division operations are required to generate anintra-predictor using DC mode. In VVC, blocks can have a rectangularshape that may necessitate the use of a division operation per block inthe general case. To avoid division operations for DC prediction, thelonger side may be used to compute the average for non-square blocks.

Although 67 modes are defined in the VVC, the exact prediction directionfor a given intra-prediction mode index may be further dependent on theblock shape. Conventional angular intra-prediction directions aredefined from 45 degrees to −135 degrees in clockwise direction. In VVC,several conventional angular intra-prediction modes may be adaptivelyreplaced with wide-angle intra-prediction modes for non-square blocks.The replaced modes may be signaled using the original mode indexes,which are remapped to the indexes of wide angular modes after parsing.In some examples, the total number of intra-prediction modes may beunchanged, i.e., 67, and the intra mode coding method may also beunchanged.

FIGS. 7 and 8 are reference example diagrams 700 and 800 of wide-angularintra-prediction. In some examples, the number of replaced modes inwide-angular direction mode may depend on the aspect ratio of a block.The replaced intra-prediction modes are illustrated in Table 1:

TABLE 1 Intra-prediction modes replaced by wide-angular modes Aspectratio Replaced intra-prediction modes W/H == 16 Modes 2, 3, 4, 5, 6, 7,8, 9, 10, 11, 12, 13, 14, 15 W/H == 8 Modes 2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12, 13 W/H == 4 Modes 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 W/H == 2 Modes2, 3, 4, 5, 6, 7, 8, 9 W/H == 1 None W/H == ½ Modes 59, 60, 61, 62, 63,64, 65, 66 W/H == ¼ Mode 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 W/H == ⅛Modes 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 W/H == 1/16 Modes53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66

FIG. 9 is a diagram 900 of discontinuity in case of directions thatexceed 45° angle. In such instance, two vertically adjacent predictedsamples may use two non-adjacent reference samples in the case ofwide-angle intra-prediction. Hence, low-pass reference samples filterand side smoothing may be applied to the wide-angle prediction to reducethe negative effect of the increased gap Δp_(α). If a wide-angle moderepresents a non-fractional offset, there may be 8 modes in thewide-angle modes satisfy this condition, which are [−14, −12, −10, −6,72, 76, 78, 80]. When a block is predicted by these modes, the samplesin the reference buffer can be directly copied without applying anyinterpolation. With this modification, the number of samples to besmoothed may be reduced.

In VVC, 4:2:2 and 4:4:4 chroma formats are supported as well as 4:2:0.Chroma derived mode (DM) derivation table for 4:2:2 chroma format wasinitially ported from HEVC extending the number of entries from 35 to 67to align with the extension of intra-prediction modes. As HEVCspecification does not support prediction angle below −135 degree andabove 45 degree, luma intra-prediction modes ranging from 2 to 5 may bemapped to 2. Therefore, chroma DM derivation table for 4:2:2: chromaformat can be updated by replacing some values of the entries of themapping table to convert prediction angle more precisely for chromablocks.

In some aspects, for each inter-predicted CU, motion parametersconsisting of motion vectors, reference picture indices and referencepicture list usage index, and additional information used for the newcoding feature of VVC may be used for inter-predicted sample generation.The motion parameter can be signaled in an explicit or implicit manner.When a CU is coded with skip mode, the CU may be associated with one PUand may have no significant residual coefficients, no coded motionvector delta or reference picture index. A merge mode may be specifiedwhere the motion parameters for the current CU can be obtained fromneighboring CUs, including spatial and temporal candidates, andadditional schedules introduced in VVC. The merge mode can be applied toany inter-predicted CU, not only for skip mode. The alternative to mergemode may be the explicit transmission of motion parameters, where motionvector, corresponding reference picture index for each reference picturelist and reference picture list usage flag and other needed informationare signaled explicitly per each CU.

Additionally or alternatively, intra block copy (IBC) may be a tooladopted in HEVC extensions on SCC, and thus may be used by a videoencoder 114, 200, 400, as described herein in encoding video, and/or bya video decoder 124, 300, 400, as described herein in decoding video.Such a tool may improve the coding efficiency of screen contentmaterials. As IBC mode may be implemented as a block level coding mode,block matching (BM) may be performed at the encoder to find the optimalblock vector (or motion vector) for each CU. Here, a block vector isused to indicate the displacement from the current block to a referenceblock, which is already reconstructed inside the current picture. Theluma block vector of an IBC-coded CU may be in integer precision. Thechroma block vector can round to integer precision as well. Whencombined with AMVR, the IBC mode can switch between 1-pel and 4-pelmotion vector precisions. An IBC-coded CU may be treated as the thirdprediction mode other than intra- or inter-prediction modes. The IBCmode may be applicable to the CUs with both width and height smallerthan or equal to 64 luma samples.

At the encoder side, hash-based motion estimation may be performed forIBC. The encoder performs RD check for blocks with either width orheight no larger than 16 luma samples. For non-merge mode, the blockvector search may be performed using hash-based search first. If hashsearch does not return valid candidate, block matching based localsearch may be performed. In the hash-based search, hash key matching(32-bit cyclic redundancy check (CRC)) between the current block and areference block may be extended to all allowed block sizes. The hash keycalculation for every position in the current picture may be based on4×4 sub-blocks. For the current block of a larger size, a hash key maybe determined to match that of the reference block when all the hashkeys of all 4×4 sub-blocks match the hash keys in the correspondingreference locations. If hash keys of multiple reference blocks are foundto match that of the current block, the block vector costs of eachmatched reference may be calculated and the one with the minimum costmay be selected.

In some examples, in block matching search, the search range may be setto cover both the previous and current CTUs. At CU level, IBC mode maybe signaled with a flag and it can be signaled as IBC AMVP mode or IBCskip/merge mode. In one example, such as IBC skip/merge mode, a mergecandidate index may be used to indicate which of the block vectors inthe list from neighboring candidate IBC coded blocks is used to predictthe current block. The merge list may include spatial, HMVP, andpairwise candidates.

In another example, such as IBC AMVP mode, a block vector difference maybe coded in the same way as a motion vector difference. The block vectorprediction method uses two candidates as predictors, one from leftneighbor and one from above neighbor (if IBC coded). When eitherneighbor is not available, a default block vector can be used as apredictor. A flag can be signaled to indicate the block vector predictorindex.

To reduce the cross-component redundancy, a cross-component linear model(CCLM) prediction mode may be used in the VVC, for which the chromasamples are predicted based on the reconstructed luma samples of thesame CU by using a linear model as follows:pred_(c)(i,j)=α·rec _(L)′(i,j)+μ   Equation 1

In such instance, pred_(c)(i,j) may represent the predicted chromasamples in a CU and rec_(L)(i,j) may represent the down-sampledreconstructed luma samples of the same CU. The CCLM parameters (α and β)may be derived with at most four neighboring chroma samples and theircorresponding down-sampled luma samples. For instance, suppose thecurrent chroma block dimensions are W×H, then W″ and H′ are set as W′=W,H′=H when LM mode is applied; W′=W+H when LM-T mode is applied; andH′=H+W when LM-L mode is applied.

The above neighboring positions may be denoted as S[0, −1] . . . S[W′−1,−1] and the left neighboring positions may be denoted as S[−1, 0] . . .S[−1, H′−1]. Then the four samples are selected as S[W′/4, −1],S[3*W′/4, −1], S[−1, H′/4], S[−1, 3*H′/4] when LM mode is applied andboth above and left neighboring samples are available; S[W′/8, −1],S[3*W′/8, −1], S[5*W′/8, −1], S[7*W′/8, −1] when LM-T mode is applied oronly the above neighboring samples are available; and S[−1, H′/8], S[−1,3*H′/8], S[−1, 5*H′/8], S[−1, 7*H′/8] when LM-L mode is applied or onlythe left neighboring samples are available.

In some aspects, the four neighboring luma samples at the selectedpositions may be down-sampled and compared four times to find two largervalues: x⁰ _(A) and x¹ _(A), and two smaller values: x⁰ _(B) and x¹_(B). Their corresponding chroma sample values may be denoted as y⁰_(A), y¹ _(A), y⁰ _(B) and y¹ _(B). Then x_(A), x_(B), y_(A) and y_(B)may be derived as:X _(a)=(x ⁰ _(A) +x ₁ ^(A)+1)>>1;X _(b)=(x ₀ ^(B) +x ¹ _(B),+1)>>1;Y_(a)=(y ⁰ _(A) +y ₁ ^(A))>>1;Y _(b)=(y ⁰ _(B) +y ¹ _(B)+1)>>1;  Equation 2

Finally, the linear model parameters α and β may be obtained accordingto the following equations:

$\begin{matrix}{\alpha = \frac{Y_{a} - Y_{b}}{X_{a} - X_{b}}} & {{Equation}\mspace{14mu} 3} \\{\beta = {Y_{b} - {\alpha \cdot X_{b}}}} & {{Equation}\mspace{14mu} 4}\end{matrix}$

FIG. 10 is a schematic diagram 1000 of location of the samples used forthe derivation of α and β for the chroma. FIG. 11 is a schematic diagram1100 of location of the samples used for the derivation of α and β forthe luma. For both FIGS. 10 and 11 , the division operation to calculateparameter a may be implemented with a look-up table. To reduce thememory required for storing the table, the diff value (differencebetween maximum and minimum values) and the parameter a may be expressedby an exponential notation. For example, the diff value is approximatedwith a 4-bit significant part and an exponent. Consequently, the tablefor 1/cliff is reduced into 16 elements for 16 values of the significandas follows:

-   -   DivTable [ ]={0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}    -   Table 2

In an example, the above template and left template can be used tocalculate the linear model coefficients together. In another example,the above template and left template can be used alternatively in theother 2 LM modes, called LM_T, and LM_L modes. In LM_T mode, only theabove template may be used to calculate the linear model coefficients.To get more samples, the above template is extended to (W+H) samples. InLM_L mode, only left template is used to calculate the linear modelcoefficients. To get more samples, the left template may be extended to(H+W) samples. In LM mode, left and above templates are used tocalculate the linear model coefficients.

To match the chroma sample locations for 4:2:0 video sequences, twotypes of down-sampling filter are applied to luma samples to achieve 2to 1 down-sampling ratio in both horizontal and vertical directions. Theselection of down-sampling filter is specified by a SPS level flag. Thetwo down-sampling filters are as follows, which are corresponding to“type-0” and “type-2” content, respectively.

$\begin{matrix}{{{Rec}_{L}^{\prime}\left( {i,j} \right)} = {\begin{bmatrix}{{{rec}_{L}\left( {{{2i} - 1},{{2j} - 1}} \right)} + {2 \cdot {{rec}_{L}\left( {{{2i} - 1},{{2j} - 1}} \right)}} + {{rec}_{L}\left( {{{2i} + 1},{{2j} - 1}} \right)} +} \\{{{rec}_{L}\left( {{{2i} - 1},{2j}} \right)} + {2 \cdot {{rec}_{L}\left( {{2i},{2j}} \right)}} + {{rec}_{L}\left( {{{2i} + 1},{2j}} \right)} + 4}\end{bmatrix}\mspace{11mu}\text{>>}\mspace{14mu} 3}} & {{Equation}\mspace{14mu} 5} \\{{{rec}_{L}^{\prime}\left( {i,j} \right)} = {\begin{bmatrix}{{{rec}_{L}\left( {{2i},{{2j} - 1}} \right)} + {{rec}_{L}\left( {{{2i} - 1},{2j}} \right)} + {4 \cdot {{rec}_{L}\left( {{2i},{2j}} \right)}} +} \\{{{rec}_{L}\left( {{{2i} + 1},{2j}} \right)} + {{rec}_{L}\left( {{2i},{{2j} - {+ 1}}} \right)} + 4}\end{bmatrix}\mspace{14mu}\text{>>}\mspace{14mu} 3}} & {{Equation}\mspace{14mu} 6}\end{matrix}$

Note that only one luma line (general line buffer in intra-prediction)may be used to make the down-sampled luma samples when the upperreference line is at the CTU boundary. This parameter computation may beperformed as part of the decoding process, and not just as an encodersearch operation. As a result, no syntax may be used to convey the α andβ values to the decoder.

For chroma intra-prediction mode coding, a total of 8 intra-predictionmodes are allowed for chroma intra mode coding. Those modes include fivetraditional intra-prediction modes and three cross-component linearmodel modes (LM, LM_T, and LM_L). Chroma mode signaling and derivationprocess are shown in Table 3 below. Chroma mode coding directly dependson the intra-prediction mode of the corresponding luma block. Asseparate block partitioning structure for luma and chroma components isenabled in I slices, one chroma block may correspond to multiple lumablocks. Therefore, for Chroma DM mode, the intra-prediction mode of thecorresponding luma block covering the center position of the currentchroma block can be directly inherited.

TABLE 3 Chroma mode signalling and derivation process ChromaCorresponding luma intra- prediction prediction mode mode 0 50 18 1 X (0<= X <= 66) 0 66 0 0 0 0 1 50 66 50 50 50 2 18 18 66 18 18 3 1 1 1 66 14 0 50 18 1 X 5 81 81 81 81 81 6 82 82 82 82 82 7 83 83 83 83 83

TABLE 4 Unified binarization table for chroma prediction mode Value ofintra_chroma_pred_mode Bin string 4 00 0 0100 1 0101 2 0110 3 0111 5 106 110 7 111

In Table 4, the first bin indicates whether it is regular (0) or LMmodes (1). If it is LM mode, then the next bin indicates whether it isLM_CHROMA (0) or not (1). If it is not LM_CHROMA, next bin indicateswhether it is LM_L (0) or LM_T (1). For this case, whensps_cclm_enabled_flag is 0, the first bin of the binarization table forthe corresponding intra_chroma_pred_mode can be discarded prior to theentropy coding. In other words, the first bin is inferred to be 0 andhence not coded. This single binarization table is used for bothsps_cclm_enabled_flag equal to 0 and 1 cases. The first two bins inTable 4 are context coded with its own context model, and the rest ofthe bins are bypass coded.

In addition, in order to reduce luma-chroma latency in dual tree, whenthe 64×64 luma coding tree node is partitioned with Not Split (and ISPis not used for the 64×64 CU) or QT, the chroma CUs in 32×32/32×16chroma coding tree node is allowed to use CCLM in the following way: Ifthe 32×32 chroma node is not split or partitioned QT split, all chromaCUs in the 32×32 node can use CCLM; Alternatively, if the 32×32 chromanode is partitioned with Horizontal BT, and the 32×16 child node doesnot split or uses Vertical BT split, all chroma CUs in the 32×16 chromanode can use CCLM. In all the other luma and chroma coding tree splitconditions, CCLM is not allowed for chroma CU.

In VVC, the results of intra-prediction of DC, planar and severalangular modes may further be modified by a position dependent predictioncombination (PDPC) method. PDPC is a prediction method that invokes acombination of the boundary reference samples and HEVC style predictionwith filtered boundary reference samples. PDPC can be applied to thefollowing intra modes without signaling: planar, DC, intra angles lessthan or equal to horizontal, and intra angles greater than or equal tovertical and less than or equal to 80. If the current block is BDPCMmode or MRL index is larger than 0, PDPC is not applied.

The prediction sample pred(x′,y′) is predicted using an intra-predictionmode (DC, planar, angular) and a linear combination of reference samplesaccording to the Equation 7 as follows:pred(x′,y′)=Clip(0,(1<<BitDepth)−1,(wL×R _(−1,y′) +wT×R_(x′,−1)+(64−WL−wT)×pred(x′,y′)+32)>>6)   Equation 7

In the above equation, R_(x,−1), R_(−1,y) may represent the referencesamples located at the top and left boundaries of current sample (x,y),respectively

In some aspects, if PDPC is applied to DC, planar, horizontal, andvertical intra modes, additional boundary filters may not be needed, ascurrently required in the case of HEVC DC mode boundary filter orhorizontal/vertical mode edge filters. PDPC process for DC and planarmodes is identical. For angular modes, if the current angular mode isHOR_IDX or VER_IDX, left or top reference samples is not used,respectively. The PDPC weights and scale factors are dependent onprediction modes and the block sizes. PDPC is applied to the block withboth width and height greater than or equal to 4.

FIGS. 12-15 illustrate examples of reference samples 1200, 1300, 1400,1500 (R_(x,−1) and R_(−1,y)) for PDPC applied over various predictionmodes. The prediction sample pred(x′, y′) is located at (x′, y′) withinthe prediction block. As an example, the coordinate x of the referencesample R_(x,−1) is given by: x=x′+y′+1, and the coordinate y of thereference sample R_(−1,y) is similarly given by: y=x′+y′+1 for thediagonal modes. For the other angular mode, the reference samplesR_(x,−1) and R_(−1,y) could be located in fractional sample position. Inthis case, the sample value of the nearest integer sample location isused.

FIG. 16 is a diagram 1600 of multiple reference line (MRL)intra-prediction used in accordance with aspects of the presentdisclosure. In some examples, the samples of segments A and F are notfetched from reconstructed neighboring samples but padded with theclosest samples from Segment B and E, respectively. HEVC intra-pictureprediction uses the nearest reference line (i.e., reference line 0). InMRL, 2 additional lines (reference line 1 and reference line 3) areused.

In some examples of video coding, the index of selected reference line(mrl_idx) can be signalled and used to generate intra predictor. Forreference line index, which is greater than 0, the most probable mode(MPM) list may only include additional reference line modes and the MPMindex can be signalled without remaining modes. The reference line indexcan be signalled before intra-prediction modes, and planar mode can beexcluded from intra-prediction modes in case a non-zero reference lineindex is signaled.

MRL can be disabled for the first line of blocks inside a CTU to preventusing extended reference samples outside the current CTU line. Also,PDPC can be disabled when an additional line is used. For MRL mode, thederivation of DC value in DC intra-prediction mode for non-zeroreference line indices can be aligned with that of reference line index0. MRL may store 3 neighboring luma reference lines with a CTU togenerate predictions. The Cross-Component Linear Model (CCLM) tool maystore 3 neighboring luma reference lines for its down-sampling filters.The definition of MRL to use the same 3 lines can be aligned as CCLM toreduce the storage requirements for decoders.

FIGS. 17 and 18 are examples of diagrams 1700 and 1800 of an intrasub-partitions (ISP) that divides luma intra-predicted blocks verticallyor horizontally into sub-partitions depending on the block size. Forexample, minimum block size for ISP is 4×8 (or 8×4). If block size isgreater than 4×8 (or 8×4) then the corresponding block can be divided by4 sub-partitions. It has been noted that the M×128 (with M≤64) and 128×N(with N≤64) ISP blocks could generate a potential issue with the 64×64VDPU. For example, an M×128 CU in the single tree case has an M×128 lumaTB and two corresponding

$\frac{M}{2} \times 64$chroma TBs. If the CU uses ISP, then the luma TB can be divided intofour M×32 TBs (only the horizontal split is possible), each of themsmaller than a 64×64 block. However, in the current design of ISP chromablocks are not divided. Therefore, both chroma components may have asize greater than a 32×32 block. Analogously, a similar situation couldbe created with a 128×N CU using ISP. Hence, these two cases may be anissue for the 64×64 decoder pipeline. For this reason, the CU sizes thatcan use ISP may be restricted to a maximum of 64×64. FIGS. 17 and 18shows examples of the two possibilities. All sub-partitions fulfill thecondition of having at least 16 samples.

In ISP, the dependence of 1×N/2×N subblock prediction on thereconstructed values of previously decoded 1×N/2×N subblocks of thecoding block is not allowed so that the minimum width of prediction forsubblocks becomes four samples. For example, an 8×N (N>4) coding blockthat is coded using ISP with vertical split is split into two predictionregions each of size 4×N and four transforms of size 2×N. Also, a 4×Ncoding block that is coded using ISP with vertical split is predictedusing the full 4×N block; four transform each of 1×N is used. Althoughthe transform sizes of 1×N and 2×N are allowed, it is asserted that thetransform of these blocks in 4×N regions can be performed in parallel.For example, when a 4×N prediction region contains four 1×N transforms,there is no transform in the horizontal direction; the transform in thevertical direction can be performed as a single 4×N transform in thevertical direction. Similarly, when a 4×N prediction region contains two2×N transform blocks, the transform operation of the two 2×N blocks ineach direction (horizontal and vertical) can be conducted in parallel.In this example, there may be no delay, or reduced delay, added inprocessing these smaller blocks than processing 4×4 regular-coded intrablocks.

TABLE 5 Block Size Coefficient group Size 1 × N, N ≥ 16  1 × 16 N × 1, N≥ 16 16 × 1  2 × N, N ≥ 8  2 × 8 N × 2, N ≥ 8  8 × 2 All other possibleM × N cases 4 × 4

For each sub-partition, reconstructed samples are obtained by adding theresidual signal to the prediction signal. Here, a residual signal isgenerated by the processes such as entropy decoding, inversequantization and inverse transform. Therefore, the reconstructed samplevalues of each sub-partition can be available to generate the predictionof the next sub-partition, and each sub-partition is repeatedlyprocessed. In addition, the first sub-partition to be processed is theone containing the top-left sample of the CU and then continuingdownwards (horizontal split) or rightwards (vertical split). As aresult, reference samples used to generate the sub-partitions predictionsignals may only be located at the left and above sides of the lines.All sub-partitions can share the same intra mode. The followings aresummary of interaction of ISP with other coding tools.

In one example, MRL may be implemented if a block has an MRL index otherthan 0, then the ISP coding mode can be inferred to be 0 and thereforeISP mode information may not be sent to the decoder. In another example,entropy coding coefficient group size may be selected if the sizes ofthe entropy coding subblocks have been modified so that they have 16samples in all possible cases, as shown in Table 5. Note that the newsizes may only affect blocks produced by ISP in which one of thedimensions is less than 4 samples. In all other cases coefficient groupsmay keep the 4×4 dimensions.

Additionally or alternatively, with respect to coded block flag (CBF)coding, it is assumed to have at least one of the sub-partitions has anon-zero CBF. Hence, if n is the number of sub-partitions and the firstn−1 sub-partitions have produced a zero CBF, then the CBF of the n-thsub-partition can be inferred to be 1. Transform size restriction: allISP transforms with a length larger than 16 points can use the discretecosine transform (DCT)-II. Multiple transform selection (MTS) flag: if aCU uses the ISP coding mode, the MTS CU flag may be set to 0 and it maynot be sent to the decoder. Therefore, the encoder may not perform ratedistortion (RD) tests for the different available transforms for eachresulting sub-partition. The transform choice for the ISP mode mayinstead be fixed and selected according the intra mode, the processingorder and the block size utilized. Hence, no signaling may be required,in this example.

For example, let t_(H) and t_(V) be the horizontal and the verticaltransforms selected respectively for the w×h sub-partition, where w isthe width and h is the height. Then the transform can be selectedaccording to the following rules: If w=1 or h=1, then there may be nohorizontal or vertical transform respectively. If w≥4 and w≤16,t_(H)=discrete sine transform (DST)-VII, otherwise, t_(H)=DCT-II. If h≥4and h≤16, t_(V)=DST-VII, otherwise, t_(V)=DCT-II.

In ISP mode, all 67 intra-prediction modes are allowed. PDPC can also beapplied if corresponding width and height is at least 4 samples long. Inaddition, the reference sample filtering process (reference smoothing)and the condition for intra interpolation filter selection may not existanymore, and Cubic (DCT-IF) filter can be applied for fractionalposition interpolation in ISP mode.

FIG. 19 is an example of a diagram 1900 of matrix weightedintra-prediction process (MIP) for VVC. For predicting the samples of arectangular block of width W and height H, -MIP takes one line of Hreconstructed neighboring boundary samples left of the block and oneline of W reconstructed neighboring boundary samples above the block asinput. If the reconstructed samples are unavailable, they can begenerated as in the conventional intra-prediction.

Among the boundary samples, four samples or eight samples can beselected by averaging based on block size and shape. Specifically, theinput boundaries bdry^(top) and bdry^(left) are reduced to smallerboundaries bdry_(red) ^(top) and bdry_(red) ^(left) by averagingneighboring boundary samples according to predefined rule depends onblock size. Then, the two reduced boundaries bdry_(red) ^(left) andbdry_(red) ^(left) can be concatenated to a reduced boundary vectorbdry_(red) which is thus of size four for blocks of shape 4×4 and ofsize eight for blocks of all other shapes. If mode refers to theMW-mode, this concatenation is defined as follows:

$\begin{matrix}{{bdry}_{red} = \left\{ \begin{matrix}\left\lbrack {{bdry}_{red}^{top},{bdry}_{red}^{left}} \right\rbrack & {{{{for}\mspace{14mu} W} = {H = {{4\mspace{14mu}{and}\mspace{14mu}{mode}} < 18}}}\mspace{45mu}} \\\left\lbrack {{bdry}_{red}^{left},{bdry}_{red}^{top}} \right\rbrack & {{{{for}\mspace{14mu} W} = {H = {{4\mspace{14mu}{and}\mspace{14mu}{mode}} \geq 18}}}\mspace{45mu}} \\\left\lbrack {{bdry}_{red}^{top},{bdry}_{red}^{left}} \right\rbrack & {{{for}\mspace{14mu}{\max\left( {W,H} \right)}} = {{8\mspace{14mu}{and}\mspace{14mu}{mode}} < 10}} \\\left\lbrack {{bdry}_{red}^{left},{bdry}_{red}^{top}} \right\rbrack & {{{for}\mspace{14mu}{\max\left( {W,H} \right)}} = {{8\mspace{14mu}{and}\mspace{14mu}{mode}} \geq 10}} \\\left\lbrack {{bdry}_{red}^{top},{bdry}_{red}^{left}} \right\rbrack & {{{{for}\mspace{14mu}{\max\left( {W,H} \right)}} > {8\mspace{14mu}{and}\mspace{14mu}{mode}} < 6}\mspace{11mu}} \\\left\lbrack {{bdry}_{red}^{left},{bdry}_{red}^{top}} \right\rbrack & {{{{for}\mspace{14mu}{\max\left( {W,H} \right)}} > {8\mspace{14mu}{and}\mspace{14mu}{mode}} \geq 6.}\;}\end{matrix} \right.} & {{Equation}\mspace{14mu} 8}\end{matrix}$

A matrix vector multiplication, followed by addition of an offset, iscarried out with the averaged samples as an input. The result is areduced prediction signal on a subsampled set of samples in the originalblock. Out of the reduced input vector bdry_(red) a reduced predictionsignal pred_(red), which is a signal on the down-sampled block of widthW_(red) and height H_(red) is generated. Here, W_(red) and H_(red) aredefined as:

$\begin{matrix}{W_{red} = \left\{ {{\begin{matrix}4 & {{{for}\mspace{14mu}{\max\left( {W,H} \right)}} \leq 8} \\{\min\left( {W,8} \right)} & {{{for}\mspace{14mu}{\max\left( {W,H} \right)}} > 8}\end{matrix}H_{red}} = \left\{ \begin{matrix}4 & {{{for}\mspace{14mu}{\max\left( {W,H} \right)}} \leq 8} \\{\min\left( {H,8} \right)} & {{{for}\mspace{14mu}{\max\left( {W,H} \right)}} > 8}\end{matrix} \right.} \right.} & {{Equation}\mspace{14mu} 9}\end{matrix}$

The reduced prediction signal pred_(red) may be computed by calculatinga matrix vector product and adding an offset:pred_(red) =A·bdry_(red) +b   Equation 10

Here, A is a matrix that has W_(red)·H_(red) rows and 4 columns if W=H=4and 8 columns in all other cases. b is a vector of size W_(red)·H_(red).The matrix A and the offset vector b are taken from one of the sets S₀,S₁, S₂. One defines an index idx=idx(W,H) as follows:

$\begin{matrix}{{{idx}\left( {W,H} \right)} = \left\{ \begin{matrix}0 & {{{{for}\mspace{14mu} W} = {H = 4}}\mspace{50mu}} \\1 & {{{{for}\mspace{14mu}{\max\left( {W,H} \right)}} = 8}\;} \\2 & {{{for}\mspace{14mu}{\max\left( {W,H} \right)}} > 8.}\end{matrix} \right.} & {{Equation}\mspace{14mu} 11}\end{matrix}$

Here, each coefficient of the matrix A is represented with 8 bitprecision. The set S₀ consists of 16 matrices A₀ ^(i), i∈{0, . . . , 15}each of which has 16 rows and 4 columns and 16 offset vectors b₀ ^(i),i∈{0, . . . , 16} each of size 16. Matrices and offset vectors of thatset are used for blocks of size 4×4. The set S₁ consists of 8 matricesA₁ ^(i), i∈{0, . . . , 7}, each of which has 16 rows and 8 columns and 8offset vectors b₁ ^(i), i∈{0, . . . , 7} each of size 16. The set S₂consists of 6 matrices A₂ ^(i), i∈{0, . . . , 5}, each of which has 64rows and 8 columns and of 6 offset vectors b₂ ^(i), i∈{0, . . . , 5} ofsize 64.

In some examples, the prediction signal at the remaining positions maybe generated from the prediction signal on the subsampled set by linearinterpolation which is a single step linear interpolation in eachdirection. The interpolation can be firstly performed in the horizontaldirection and then in the vertical direction regardless of block shapeor block size.

For each CU in intra mode, a flag indicating whether an MIP mode may beto be applied or not is sent. If an MIP mode is to be applied, MIP mode(predModeIntra) may be signaled. For an MIP mode, a transposed flag(isTransposed), which determines whether the mode is transposed, and MIPmode ID (modeId), which determines which matrix is to be used for thegiven MIP mode, can be derived as followsisTransposed=predModeIntra&1 modeId=predModeIntra>>1   Equation 12

MIP coding mode may be harmonized with other coding tools by consideringfollowing aspects: (1) low-frequency non-separable transform (LFNST) isenabled for MIP on large blocks. Here, the LFNST transforms of planarmode are used; (2) the reference sample derivation for MIP is performedexactly or at least similarly as for the conventional intra-predictionmodes; (3) for the up-sampling step used in the MIP-prediction, originalreference samples are used instead of down-sampled ones; (4) clipping isperformed before up-sampling and not after up-sampling; (5) MIP may beallowed up to 64×64 regardless of the maximum transform size. In someaspects, the number of MIP modes may be 32 for sizeId=0, 16 for sizeId=1and 12 for sizeId=2.

In joint exploration model (JEM)-2.0 intra modes are extended to 67 from35 modes in HEVC, and they are derived at encoder and explicitlysignaled to decoder. A significant amount of overhead is spent on intramode coding in JEM-2.0. For example, the intra mode signaling overheadmay be up to 5-10% of overall bitrate in all intra coding configuration.This contribution proposes the decoder-side intra mode derivationapproach to reduce the intra mode coding overhead while keepingprediction accuracy. To reduce the overhead of intra mode signaling, adecoder-side intra mode derivation (DIMD) approach, which may be used byvideo decoders 124, 300, 400 in decoding video. In accordance withaspects of the present disclosure, instead of signaling intra modeexplicitly, the information can be derived at both encoder and decoderfrom the neighboring reconstructed samples of current block. The intramode derived by DIMD may be used in two ways, for example: 1) For 2N×2NCUs, the DIMD mode is used as the intra mode for intra-prediction whenthe corresponding CU-level DIMD flag is turned on; 2) For N×N CUs, theDIMD mode is used to replace one candidate of the existing MPM list toimprove the efficiency of intra mode coding.

FIG. 20 is an example of a diagram 2000 of a template based intra modederivation where the target denotes the current block (of block size N)for which intra-prediction mode is to be estimated. The template(indicated by the patterned region in FIG. 20 ) specifies a set ofalready reconstructed samples, which are used to derive the intra mode.The template size is denoted as the number of samples within thetemplate that extends to the above and the left of the target block,i.e., L. In some implementations, a template size of 2 (i.e., L=2) canbe used for 4×4 and 8×8 blocks and a template size of 4 (i.e., L=4) canbe used for 16×16 and larger blocks. The reference of template(indicated by the dotted region in FIG. 20 ) can refer to a set ofneighboring samples from above and left of the template, as defined byJEM-2.0. Unlike the template samples which are always from reconstructedregion, the reference samples of template may not be reconstructed yetwhen encoding/decoding the target block. In this case, the existingreference samples substitution algorithm of JEM-2.0 is utilized tosubstitute the unavailable reference samples with the availablereference samples.

For each intra-prediction mode, the DIMD calculates the absolutedifference (SAD) between the reconstructed template samples and itsprediction samples obtained from the reference samples of the template.The intra-prediction mode that yields the minimum SAD may be selected asthe final intra-prediction mode of the target block.

For intra 2N×2N CUs, the DIMD can be used as one additional intra mode,which can be adaptively selected by comparing the DIMD intra mode withthe optimal normal intra mode (i.e., being explicitly signaled). Oneflag is signaled for each intra 2N×2N CU to indicate the usage of theDIMD. If the flag is one, then the CU can be predicted using the intramode derived by DIMD; otherwise, the DIMD is not applied and the CU ispredicted using the intra mode explicitly signaled in the bit-stream.When the DIMD is enabled, chroma components can reuse the same intramode as that derived for luma component, i.e., DM mode.

Additionally, for each DIMD-coded CU, the blocks in the CU canadaptively select to derive their intra modes at either PU-level orTU-level. Specifically, when the DIMD flag is one, another CU-level DIMDcontrol flag can be signaled to indicate the level at which the DIMD isperformed. If this flag is zero, this can indicate that the DIMD isperformed at the PU level and all the TUs in the PU use the same derivedintra mode for their intra-prediction; otherwise if the DIMD controlflag is one, this can indicate that the DIMD is performed at the TUlevel and each TU in the PU derives its own intra mode.

Further, when the DIMD is enabled, the number of angular directionsincreases to 129, and the DC and planar modes still remain the same. Toaccommodate the increased granularity of angular intra modes, theprecision of intra interpolation filtering for DIMD-coded CUs increasesfrom 1/32-pel to 1/64-pel. Additionally, in order to use the derivedintra mode of a DIMD coded CU as MPM candidate for neighboring intrablocks, those 129 directions of the DIMD-coded CUs can be converted to“normal” intra modes (i.e., 65 angular intra directions) before they areused as MPM.

In some aspects, intra modes of intra N×N CUs are signaled. However, toimprove the efficiency of intra mode coding, the intra modes derivedfrom DIMD are used as MPM candidates for predicting the intra modes offour PUs in the CU. In order to not increase the overhead of MPM indexsignaling, the DIMD candidate can be placed at the first place in theMPM list and the last existing MPM candidate can be removed. Also, apruning operation can be performed such that the DIMD candidate may notbe added to the MPM list if it is redundant.

In order to reduce encoding/decoding complexity, one straightforwardfast intra mode search algorithm is used for DIMD. Firstly, one initialestimation process can be performed to provide a good starting point forintra mode search. Specifically, an initial candidate list can becreated by selecting N fixed modes from the allowed intra modes. Then,the SAD can be calculated for all the candidate intra modes and the onethat minimizes the SAD can be selected as the starting intra mode. Toachieve a good complexity/performance trade-off, the initial candidatelist can include 11 intra modes, including DC, planar and every 4-thmode of the 33 angular intra directions as defined in HEVC, i.e., intramodes 0, 1, 2, 6, 10 . . . 30, 34.

If the starting intra mode is either DC or planar, it can be used as theDIMD mode. Otherwise, based on the starting intra mode, one refinementprocess can then be applied where the optimal intra mode is identifiedthrough one iterative search. In the iterative search, at eachiteration, the SAD values for three intra modes separated by a givensearch interval can be compared and the intra mode that minimizes theSAD can be maintained. The search interval can then be reduced to half,and the selected intra mode from the last iteration can serve as thecenter intra mode for the current iteration. For the current DIMDimplementation with 129 angular intra directions, up to 4 iterations canbe used in the refinement process to find the optimal DIMD intra mode.

In some examples, transmitting of the luma intra-prediction mode in thebitstream can be avoided. This is done by deriving the luma intra modeusing previously encoded/decoded pixels, in an identical fashion at theencoder and at the decoder. This process defines a new coding modecalled DIMD, whose selection signaled in the bitstream for intra codedblocks using a flag. DIMD can compete with other coding modes at theencoder, including the classic Intra coding mode (where theintra-prediction mode is coded). Note that in one example, DIMD may onlyapply to luma. For chroma, classical intra coding mode may apply. Asdone for other coding modes (classical intra, inter, merge, etc.), arate-distortion cost can be computed for the DIMD mode, and can then becompared to the coding costs of other modes to decide whether to selectit as final coding mode for a current block.

At the decoder side, the DIMD flag can be first parsed, if present. Ifthe DIMD flag is true, the intra-prediction mode can be derived in thereconstruction process using the same previously encoded neighboringpixels. If not, the intra-prediction mode can be parsed from thebitstream as in classical intra coding mode.

To derive the intra-prediction mode for a block, a set of neighboringpixels may be first selected on which a gradient analysis is performed.For normativity purposes, these pixels can be in thedecoded/reconstructed pool of pixels. FIG. 21 is an example of a diagram2100 of a template of a set of chosen pixels on which a gradientanalysis may be performed based on intra-prediction mode derivation. Asshown in FIG. 21 , a template surrounding the current block is chosen byT pixels to the left, and T pixels above. For example, T may have avalue of 2.

Next, a gradient analysis is performed on the pixels of the template.This can facilitate determining a main angular direction for thetemplate, which can be assumed to have a high chance to be identical tothe one of the current block. Thus, a simple 3×3 Sobel gradient filtercan be used, defined by the following matrices that may be convolutedwith the template:

$M_{x} = {{\begin{bmatrix}{- 1} & 0 & 1 \\{- 2} & 0 & 2 \\{- 1} & 0 & 1\end{bmatrix}\mspace{14mu}{and}\mspace{14mu} M_{y}} = \begin{bmatrix}{- 1} & {- 2} & {- 1} \\0 & 0 & 0 \\1 & 2 & 1\end{bmatrix}}$

For each pixel of the template, each of these two matrices with the 3×3window centered around the current pixel can be point-by-pointmultiplied and composed of its 8 direct neighbors, and the result can beis summed. Thus, two values G_(x) (from the multiplication with M_(x)),and G_(y) (from the multiplication with M_(y)) corresponding to thegradient at the current pixel can be obtained, in the horizontal andvertical direction respectively.

FIG. 22 is an example of a diagram 2200 of a convolution of a 3×3 Sobelgradient filter with the template in accordance with aspects of thepresent disclosure. In some examples, the pixel 2210 is the currentpixel. Template pixels 2220 (including the current pixel 2210) arepixels on which the gradient analysis is possible. Unavailable pixels2230 are pixels on which the gradient analysis is not possible due tolack of some neighbors. Reconstructed pixels 2240 are available pixelsoutside of the considered template, used in the gradient analysis of thetemplate pixels 2220. In case a reconstructed pixel 2240 is notavailable (due to blocks being too close to the border of the picturefor instance), the gradient analysis of all template pixels 2220 thatuse the unavailable reconstructed pixel 2240 is not performed.

For each template pixel 2220, the intensity (G) and the orientation (0)of the gradient using G_(x) and G_(y) are calculated as such:

$G = {{{G_{x}} + {{G_{y}}\mspace{14mu}{and}\mspace{14mu} O}} = {{atan}\left( \frac{G_{y}}{G_{x}} \right)}}$

Note that a fast implementation of the atan function is proposed. Theorientation of the gradient can then be converted into an intra angularprediction mode, used to index a histogram (first initialized to zero).The histogram value at that intra angular mode is increased by G. Onceall the template pixels 2220 in the template have been processed, thehistogram can include cumulative values of gradient intensities, foreach intra angular mode. The mode that shows the highest peak in thehistogram can be selected as intra-prediction mode for the currentblock. If the maximum value in the histogram is 0 (meaning no gradientanalysis was able to be made, or the area composing the template isflat), then the DC mode can be selected as intra-prediction mode for thecurrent block.

For blocks that are located at the top of CTUs, the gradient analysis ofthe pixels located in the top part of the template is not performed. TheDIMD flag is coded using three possible contexts, depending on the leftand above neighboring blocks, similarly to the Skip flag coding. Context0 corresponds to the case where none of the left and above neighboringblocks are coded with DIMD mode, context 1 corresponds to the case whereonly one neighboring block is coded with DIMD, and context 2 correspondsto the case where both neighbors are DIMD-coded. Initial symbolprobabilities for each context are set to 0.5.

One advantage that DIMD offers over classical intra mode coding is thatthe derived intra mode can have a higher precision, allowing moreprecise predictions at no additional cost as it is not transmitted inthe bitstream. The derived intra mode spans 129 angular modes, hence atotal of 130 modes including DC (e.g., the derived intra mode may not beplanar in aspects described herein). The classical intra coding mode isunchanged, i.e., the prediction and mode coding still use 67 modes.

The required changes to Wide Angle Intra-prediction and simplified PDPCwere performed to accommodate for prediction using 129 modes. Note thatonly the prediction process uses the extended intra modes, meaning thatfor any other purpose (deciding whether to filter the reference samplesfor instance), the mode can be converted back to 67-mode precision.

In the DIMD mode, the luma intra mode is derived during thereconstruction process, just prior to the block reconstruction. This isdone to avoid a dependency on reconstructed pixels during parsing.However, by doing so, the luma intra mode of the block may be undefinedfor the chroma component of the block, and for the luma component ofneighboring blocks. This can cause an issue because for chroma, a fixedmode candidate list is defined. Usually, if the luma mode equals one ofthe chroma candidates, that candidate may be replaced with the verticaldiagonal (VDIA_IDX) intra mode. As in DIMD, the luma mode isunavailable, the initial chroma mode candidate list is not modified.

In classical intra mode, where the luma intra-prediction mode is to beparsed from the bitstream, an MPM list is constructed using the lumaintra modes of neighboring blocks, which can be unavailable if thoseblocks were coded using DIMD. In this case, for example, DIMD-codedblocks can be treated as inter blocks during MPM list construction,meaning they are effectively considered unavailable.

Entropy coding may be a form of lossless compression used at the laststage of video encoding (and the first stage of video decoding), afterthe video has been reduced to a series of syntax elements. Syntaxelements describe how the video sequence can be reconstructed at thedecoder. This includes the method of prediction (e.g., spatial ortemporal prediction, intra-prediction mode, and motion vectors) andprediction error, also referred to as residual. Arithmetic coding is atype of entropy coding that can achieve compression close to the entropyof a sequence by effectively mapping the symbols (i.e., syntax elements)to codewords with a non-integer number of bits. Context-adaptive binaryarithmetic coding (CABAC) involves three main functions: binarization,context modeling, and arithmetic coding. Binarization maps the syntaxelements to binary symbols (bins). Context modeling estimates theprobability of the bins. Finally, arithmetic coding compresses the binsto bits based on the estimated probability.

Several different binarization processes are used in VVC, such as thetruncated Rice (TR) binarization process, the truncated binarybinarization process, the k-th order Exp-Golomb (EGk) binarizationprocess and the fixed-length (FL) binarization process.

Context modeling provides an accurate probability estimate required toachieve high coding efficiency. Accordingly, it is highly adaptive anddifferent context models can be used for different bins and theprobability of that context model is updated based on the values of thepreviously coded bins. Bins with similar distributions often share thesame context model. The context model for each bin can be selected basedon the type of syntax element, bin position in syntax element (binIdx),luma/chroma, neighboring information, etc. A context switch can occurafter each bin.

Arithmetic coding may be based on recursive interval division. A range,with an initial value of 0 to 1, is divided into two subintervals basedon the probability of the bin. The encoded bits provide an offset that,when converted to a binary fraction, selects one of the twosubintervals, which indicates the value of the decoded bin. After everydecoded bin, the range is updated to equal the selected subinterval, andthe interval division process repeats itself. The range and offset havelimited bit precision, so renormalization may be used whenever the rangefalls below a certain value to prevent underflow. Renormalization canoccur after each bin is decoded. Arithmetic coding can be done using anestimated probability (context coded), or assuming equal probability of0.5 (bypass coded). For bypass coded bins, the division of the rangeinto subintervals can be done by a shift, whereas a look up table may beused for the context coded bins.

FIG. 23 is a schematic diagram 2300 of intra mode coding with greaterthan 67 intra-prediction modes to capture the arbitrary edge directionspresented in natural video. In some examples, the number of directionalintra modes may be extended from 67, as used in VVC, to 129 while theplanar and the DC modes remain the same.

In one example, the pre-defined IPMs may be the IPMs have denserdirections than conventional IPMs (e.g., IPMs denoted by the dashedlines in FIG. 23 ). In one example, the N1 IPMs may be partial or fullof the MPMs for the current block. In one example, some pre-definedintra-prediction modes which are not in MPMs may also be contained inthe given IPM candidate set.

In one example, one or more IPMs fromDC/Planar/horizontal/vertical/diagonal top-right/diagonalbottom-left/diagonal top-left modes may be contained in the given IPMset.

In one example, one or more IPMs denoted by the dashed lines in FIG. 23may be contained in the given IPM set.

In one example, N1 may be equal to or larger than N2 when one or moreIPMs denoted by the dashed red lines are contained in the given IPM set.

In one example, N1 may be equal to or larger than N2.

FIGS. 24-31 illustrate examples of templates that may be formed from oneor more sub-templates. As discussed in further detail below, thetemplate for a block may be selected for the specific block. Forinstance, the template may be selected based on decoded informationabout the specific block or based on availability of the sub-templatesfor the specific block. Although several examples are illustrated, othertemplates may be selected based on different combinations of thesub-templates.

FIG. 24 is a diagram of an example of a template 2400 including aleft-above sub-template 2420 (Template-LA). The template 2400 may beselected for a block 2410, which may have dimensions of M sampleshorizontally and N samples vertically. The left-above sub-template 2420may include left-above neighboring samples that are located both to theleft of the block 2410 and above the block 2410. The left-abovesub-template 2420 may have dimensions of L1 samples horizontally and L2samples vertically. L1 and L2 may be defined for the block 2410, a sliceincluding the block 2410, or a picture including the block 2410.

FIG. 25 is a diagram of an example of a template 2500 including a leftsub-template 2440 (Template-L) and an above sub-template 2430(Template-A). The template 2500 may be selected for a block 2410, whichmay have dimensions of M samples horizontally and N samples vertically.The left sub-template 2440 may include samples located to the left ofthe block 2410. The left sub-template 2440 may be adjacent the top edgeof the block 2410. The left sub-template 2440 may have dimensions of L1samples horizontally and N samples vertically. The above sub-template2430 may include samples located above the block 2410. The abovesub-template 2430 may be adjacent the top edge of the block 2410. Theabove sub-template 2430 may have dimensions of M samples horizontallyand L2 samples vertically.

FIG. 26 is a diagram of an example of a template 2600 including theabove sub-template 2430 (Template-A). The template 2600 may be selectedfor a block 2410, which may have dimensions of M samples horizontallyand N samples vertically. The above sub-template 2430 may includesamples located above the block 2410. The above sub-template 2430 mayhave dimensions of M samples horizontally and L2 samples vertically.

FIG. 27 is a diagram of an example of a template 2700 including a leftsub-template (Template-L). The template 2700 may be selected for a block2410, which may have dimensions of M samples horizontally and N samplesvertically. The left sub-template 2440 may include samples located tothe left of the block 2410. The left sub-template 2440 may havedimensions of L1 samples horizontally and N samples vertically.

FIG. 28 is a diagram of an example of a template 2800 including the leftsub-template 2440 (Template-L) and a left-below sub-template 2450(Template-LB). The template 2800 may be selected for a block 2410, whichmay have dimensions of M samples horizontally and N samples vertically.The left sub-template 2440 may include samples located to the left ofthe block 2410. The left sub-template 2440 may have dimensions of L1samples horizontally and N samples vertically. The left-belowsub-template 2450 may include samples that are located both to the leftof the block 2410 and below the block 2410. The left-below sub-template2450 may have dimensions of L1 samples horizontally and N samplesvertically.

FIG. 29 is a diagram of an example of a template 2900 including theabove sub-template 2430 (Template-A) and a right-above sub-template 2460(Template-RA). The template 2900 may be selected for a block 2410, whichmay have dimensions of M samples horizontally and N samples vertically.The above sub-template 2430 may include samples located above the block2410. The above sub-template 2430 may have dimensions of M sampleshorizontally and L2 samples vertically. The right-above sub-template2460 may include samples located both above the block 2410 and to theright of the block 2410. The right-above sub-template 2460 may havedimensions of M samples horizontally and L2 samples vertically.

FIG. 30 is a diagram of an example of a template 3000 including the leftsub-template 2440, the left-below sub-template 2450, the abovesub-template 2430, and the right-above sub-template 2460. The template3000 may be selected for a block 2410, which may have dimensions of Msamples horizontally and N samples vertically. The above sub-template2430 may include samples located above the block 2410. The abovesub-template 2430 may have dimensions of M samples horizontally and L2samples vertically. The right-above sub-template 2460 may includesamples located above and to the right of the block 2410. Theright-above sub-template 2460 may have dimensions of M sampleshorizontally and L2 samples vertically. The left sub-template 2440 mayinclude samples located to the left of the block 2410. The leftsub-template 2440 may have dimensions of L1 samples horizontally and Nsamples vertically. The left-below sub-template 2450 may include sampleslocated to the left of the block 2410 and below the block 2410. Theleft-below sub-template 2450 may have dimensions of L1 sampleshorizontally and N samples vertically.

FIG. 31 is a diagram of an example of a template 3100 including theleft-above sub-template 2420, the left sub-template 2440, the left-belowsub-template 2450, the above sub-template 2430, and the right-abovesub-template 2460. The template 3100 may be selected for a block 2410,which may have dimensions of M samples horizontally and N samplesvertically. The left-above sub-template 2420 may include samples locatedto the left and above the block 2410. The left-above sub-template 2420may have dimensions of L1 samples horizontally and L2 samplesvertically. The above sub-template 2430 may include samples locatedabove the block 2410. The above sub-template 2430 may have dimensions ofM samples horizontally and L2 samples vertically. The right-abovesub-template 2460 may include samples located above and to the right ofthe block 2410. The right-above sub-template 2460 may have dimensions ofM samples horizontally and L2 samples vertically. The left sub-template2440 may include samples located to the left of the block 2410. The leftsub-template 2440 may have dimensions of L1 samples horizontally and Nsamples vertically. The left-below sub-template 2450 may include sampleslocated to the left of and below the block 2410. The left-belowsub-template 2450 may have dimensions of L1 samples horizontally and Nsamples vertically.

FIG. 32 is a diagram of an example of a template 3200 including aleft-above sub-template 3220, a left sub-template 3240, a left-belowsub-template 3250, an above sub-template 3230, and a right-abovesub-template 3260 that are spaced apart from a block. The exampletemplate 3200 may be selected for a block 2410, which may havedimensions of M samples horizontally and N samples vertically. Incontrast to the sub-templates in FIGS. 24-31 , the sub-templates in FIG.32 may be spaced apart from the block 2410. For example, the left-abovesub-template 3220, the left sub-template 3240, and the left-belowsub-template 3260 may be spaced horizontally apart from the block 2410by a gap 3270. The gap 3270 may have a horizontal dimension of L3samples. The left-above sub-template 2420, the above sub-template 2430,and the right-above sub-template 2460 may be spaced vertically apartfrom the block 2410 by a gap 3280. The gap 3280 may have a verticaldimension of L4 samples. In an aspect, each of the sub-templates 3220,3230, 3240, 3250, 3260 may have dimensions that are the same as acorresponding sub-template 2420, 2430, 2440, 2450, 2460 in FIGS. 24-31 .Accordingly, in FIG. 32 , the locations of the sub-templates 3220, 3230,3240, 3250, 3260 are different, but the size of the sub-templates 3220,3230, 3240, 3250, 3260 may be the same as in FIGS. 24-31 .

FIG. 33 is a diagram of examples of template-reference samples 3310 fora template 3300 including a left-above sub-template 2420, a leftsub-template 2440, and an above sub-template 2430. The example template3300 may be selected for a block 2410, which may have dimensions of Msamples horizontally and N samples vertically. The left-abovesub-template 2420 may include samples located to the left and above theblock 2410. The left-above sub-template 2420 may have dimensions of L1samples horizontally and L2 samples vertically. The above sub-template2430 may include samples located above the block 2410. The abovesub-template 2430 may have dimensions of M samples horizontally and L2samples vertically. The left sub-template 2440 may include sampleslocated to the left of the block 2410. The left sub-template 2440 mayhave dimensions of L1 samples horizontally and N samples vertically. Thetemplate-reference samples 3310 may be a single row of samples locatedabove the template 3300 and a single column of samples located to theleft of the template 3300. The row of samples may have a length of2(L1+M)+1. The column of samples may have a height of 2(L2+N)+1.

FIG. 34 is a diagram 3400 of example template-reference samples 3410 forthe template 2500 including the left sub-template 2440 and the abovesub-template 2430. The example template 2500 may be selected for a block2410, which may have dimensions of M samples horizontally and N samplesvertically. The above sub-template 2430 may include samples locatedabove the block 2410. The above sub-template 2430 may have dimensions ofM samples horizontally and L2 samples vertically. The left sub-template2440 may include samples located to the left of the block 2410. The leftsub-template 2440 may have dimensions of L1 samples horizontally and Nsamples vertically. The template-reference samples may include one ormore lines (e.g., rows or columns) of samples. For example, thetemplate-reference samples 3410 may include a single row of sampleslocated above the template 2500 and a single column of samples locatedto the left of the template 2500. The row of samples may have a lengthof 2(L1+M)+1. The column of samples may have a height of 2(L2+N)+1.

FIG. 35 is a diagram 3500 of example template-reference samples 3510 forthe template 2600 including the above sub-template 2430. Thetemplate-reference samples 3510 may be a single row of samples locatedabove the template 2600 and a single column of samples located to theleft of the template 2600. The row of samples may have a length of 2M+1.The column of samples may have a height of 2(L2+N)+1.

FIG. 36 is a diagram 3600 of example template-reference samples 3610 forthe template 2700 including the left sub-template 2440. Thetemplate-reference samples 3610 may be a single row of samples locatedabove the template 2700 and a single column of samples located to theleft of the template 2700. The row of samples may have a length of2(L1+M)+1. The column of samples may have a height of 2N+1.

FIG. 37 is a diagram 3700 of example template-reference samples 3710 forthe template 2600 including the above sub-template 2430. Thetemplate-reference samples 3710 may be a single row of samples locatedabove the template 2600 and a single column of samples located to theleft of the template 2600. The row of samples may have a length of2(L1+M)+1. The column of samples may have a height of 2(L2+N)+1. Becausethe template 2600 does not include the left-above sub-template 2420 orthe left sub-template 2440, the column of samples may be spaced from thetemplate 2600 by a horizontal gap 3720 with a width of L1.

FIG. 38 is a diagram 3800 of example template-reference samples 3810 forthe template 2700 including the left sub-template 2440. Thetemplate-reference samples 3810 may be a single row of samples locatedabove the template 2700 and a single column of samples located to theleft of the template 2700. The row of samples may have a length of2(L1+M)+1. The column of samples may have a height of 2(L2+N)+1. Becausethe template 2700 does not include the left-above sub-template 2420 orthe above sub-template 2430, the row of samples may be spaced from thetemplate 2700 by a vertical gap 3820 with a height of L2.

FIG. 39 is a diagram 3900 of example template-reference samples 3910 forthe template 2500 including the above sub-template 2430 and the leftsub-template 2440. The template-reference samples 3910 may include asingle column of samples located to the left of the template 2500. Thecolumn of samples may have a height of 2(L2+N)+1. Instead of a singlerow of template-reference samples, a portion 3920 of the row may bemoved to a second row 3930 that is adjacent the left sub-template 2440.The portion 3920 may include L1 samples. The remaining portion in thefirst row may have a length of 2M+L1+1. In an aspect, selectingtemplate-reference samples that are adjacent a sub-template includedwithin the template may improve the prediction of the template.

FIG. 40 is a diagram 4000 of example template-reference samples 4010 forthe template 2500 including the above sub-template 2430 and the leftsub-template 2440. The template-reference samples 4010 may include asingle row of samples located above the template 2500. The row ofsamples may have a length of 2(L1+M)+1. Instead of a single column oftemplate-reference samples, a portion 4020 of the column may be moved toa second row 4030 that is adjacent the above sub-template 2430. Theportion 4020 may include L2 samples. The remaining portion in the firstcolumn may have a height of 2N+L2+1. In an aspect, selectingtemplate-reference samples that are adjacent a sub-template includedwithin the template may improve the prediction of the template. Inanother aspect, both of the portion 3920 and the portion 4020 may bemoved to the second row 3930 and the second row 4030, respectively.

Referring to FIGS. 41-50 , during operation, a computing device 4102 mayperform methods of CCP, via execution of a prediction component 4110and/or one or more subcomponents of the prediction component 4110, byprocessor 4104 and/or memory 4106. In an aspect, the predictioncomponent 4110 may include a beta algorithm component 4115. Theprediction component 4110 may include a CCP model component 4120. Theprediction component 4110 may include a neighbor selection component4125. The prediction component 4110 may include a multi-model component4130. The prediction component 4110 may include a non-CCP modelcomponent 4135. The prediction component 4110 and/or the one or moresubcomponents may be implemented as hardware, software, or a combinationthereof. The computing device 4102 may accept CU samples 4150 as inputsand provide predicted samples 4160 as outputs. In some instances, theblockWidth (BW) parameter and the blockHeight (BH) parameter representthe width and height of the current block, respectively. CCLM may referto any kinds of CCLM modes, such as CCLM left mode (CCLM-L), CCLM topmode (CCLM-T), CCLM left-top mode (CCLM-LT), or multi-model CCLM.

Referring to FIG. 42 , a method 4200 of deriving beta may be performedby the prediction component 4110, the beta algorithm component 4115, theprocessor 4104, and/or the memory 4106. In some implementations, atblock 4204, the method 4200 may determine, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, an offsetparameter of a cross-component prediction model that is based on aderived sample value from two or more neighbor samples of the currentvideo block. At block 4205, the method 4200 may perform the conversionbased on the determining.

In one example, the parameter beta may be calculated based on a functionsuch as average/mid/median/mean luma/chroma values from a portion or allneighbor samples.

Referring to FIG. 43 , a method 4300 of deriving beta may be performedby the prediction component 4110, the beta algorithm component 4115, theprocessor 4104, and/or the memory 4106. In some implementations, atblock 4304, the method 4300 may determine, for a conversion between acurrent video block of a video that is a chroma block coded with amultiple-model cross-component prediction mode and a bitstream of thevideo, a scaling parameter associated with a model or a group isdependent on neighbor samples of the current video block associated withthe model or the group. At block 4305, the method 4300 may perform theconversion based on the determining.

In one example, beta derivation may be dependent on derived chromavalue(s) and/or derived luma value(s). A chroma or luma derived valuerepresent a value derived from reconstructed chroma or luma samples.

In one example, the calculation of beta may be dependent on a derivedchroma value.

In one example, the calculation of beta may be dependent on a derivedchroma value and a parameter dependent on a derived luma value.

For example, a derived value (e.g., derived luma value or derived chromavalue) may be calculated as (min+max+offset)>>shift, where the shift maybe a constant, e.g., 2, 4, etc. Here, the notation “>>” is denoted as aright shift operation. The notation “<<” is denoted as a left shiftoperation. In an implementation, the offset may be a constant, e.g., 0,1, 2, etc. In one example, offset may be dependent on the value ofshift, e.g., offset is equal to (1<<shift)>>1. In one example, theminimum may be the smallest value among all neighbor samples or a subsetof neighbor samples. In an example, the maximum may be the greatestvalue among all neighbor samples or a subset of neighbor samples. In oneexample, the minimum may be the average of N smallest neighbor samplesamong all neighbor samples or a subset of neighbor samples, where N is aconstant, such as N=2. In another example, the maximum may be theaverage of M greatest neighbor samples among all neighbor samples or asubset of neighbor samples, where M is a constant, such as M=2.

In an example, the derived sample value may be calculated as(S+offset)>>shift, where the shift may be dependent on the number ofsamples that used for the above calculation. For example, shift may be aconstant, e.g., 2, 4, etc. For example, offset may be a constant, e.g.,0, 1, 2, etc. In an example, the offset may be dependent on the value ofshift, e.g., offset is equal to (1<<shift)>>1. For example, S may becalculated as the sum of the values of L neighbor samples, whereinL=a*blockWidth, or b*blockHeight, or c*(blockWidth+blockHeight), with a,b, and c being integers.

In certain implementations, the disclosed methods may be appropriatesingle or multiple model calculations. For example, if multiple modelsare used, the disclosed methods may be applied to either one (or some,or all) of the model derivation. In another example, the disclosedmethods may be applied to any kinds of CCLM mode, such as CCLM-LT,CCLM-T or CCLM-L. Beta may be calculated by the derived values as:beta=derivedChroma−((alpha*derivedLuma)>>shiftX), where alpha denotesthe scaling factor applying to luma reconstructed value, shiftX denotesa constant value, and derivedChroma and derivedLuma may be calculatedbased on the aspects of the present disclosure. In above examples, theneighboring samples are those adjacent from current chroma block and/orcorresponding luma block of the current chroma block. Alternatively, theneighboring samples are those non-adjacent from current chroma blockand/or corresponding luma block of the current chroma block. In oneexample, indication of the non-adjacent samples may be signaled orderived on-the-fly (real time or near real time). For example, theindication may be derived during the encoding and/or decoding process ofvideo images.

Referring to FIG. 44 , a method 4400 of cross-component prediction maybe performed by the prediction component 4110, the CCP model component4120, the processor 4104, and/or the memory 4106. In someimplementations, at block 4404, the method 4400 may determine, for aconversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block. At block 4405, the method 4400 may performingthe conversion based on the determining, wherein during the determining,resampling more than one row of neighbor samples of the current videoblock or more than one column of neighbor samples of the current videoblock is applied.

In one example, when multiple-model cross-component prediction is used,the derivation of X₂ and/or Y₂ for a particular model/group, may bedependent on (e.g. equal to) a function (e.g., theaverage/mid/median/mean) of N smallest neighbor samples belong to thisgroup (or corresponding to this model). Similarly, when multiple-modelcross-component prediction is used, the derivation of X₁ and/or Y₁ for aparticular model/group, may be dependent on (e.g. equal to) a function(e.g., the average/mid/median/mean) of N greatest neighbor samplesbelong to this group (or corresponding to this model). For example, Nmay be a constant, such as N=2. For example, N may be dependent on codedinformation, e.g., the block width, and/or block height. In one example,N may be dependent on how many neighbor samples belong to this group,e.g., N=1 if there are less than T counted neighbor samples belong tothis group, and N=2 if the number of counted neighbor samples belong tothis group is greater than or equal to T, where by T is a constant, suchas T=4. For example, the above mentioned counted neighbor sample may beneighbor sample which satisfy a pre-determined condition, e.g.,conditioned on the location, the sample value, etc.

Referring to FIG. 45 , a method 4500 of cross-component prediction maybe performed by the prediction component 4110, the CCP model component4120, the processor 4104, and/or the memory 4106. In someimplementations, at block 4504, the method 4500 may determining, for aconversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block. At block 4505, the method 4500 may performingthe conversion based on the determining, wherein the model parametersare based on neighboring samples of the current video block, wherein atleast one of a number or positions of the neighboring samples aredependent on at least one of a block width or a block height of thecurrent video block. In one example, more than one rows/columns of lumaneighbors which may be resampled may be taken into account for modelderivation. Similarly, more than one rows/columns of chroma neighborsmay be taken into account for model derivation. In one example, thenumber and positions of neighboring samples used for model calculationmay be dependent on the block width and/or height.

Referring to FIG. 46 , a method 4600 of cross-component prediction maybe performed by the prediction component 4110, the CCP model component4120, the processor 4104, and/or the memory 4106. In someimplementations, at block 4604, the method 4600 may determine, for aconversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block. At block 4605, the method 4600 may performingthe conversion based on the determining, wherein, during thedetermining, performing a bit-depth shift operation is applied. In oneexample, internal high bit-depth division operation may be used formodel derivation. For example, the numbers may be left shifted by K bitsbefore the division operation and right-shifted by K bits after thedivision operation.

Referring to FIG. 47 , a method 4700 of cross-component prediction maybe performed by the prediction component 4110, the CCP model component4120, the processor 4104, and/or the memory 4106. In someimplementations, at block 4704, the method 4700 may determine, for aconversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block using a non-linear model. At block 4705, themethod 4700 may performing the conversion based on the determining. Inone example, a non-linear model may be used for cross-componentpredictions. For example, a chroma sample C may be predicted by afunction f on a luma reconstructed sample (may be down-sampled) Y asC=f(Y), where f is a non-linear function, such as f(Y)=aY²+bY+c orf(Y)=clip3(minC, maxC, aY+b).

Referring to FIG. 48 , a method 4800 of cross-component prediction maybe performed by the prediction component 4110, the CCP model component4120, the processor 4104, and/or the memory 4106. In someimplementations, at block 4804, the method 4800 may determine, for aconversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block. At block 4805, the method 4800 may perform theconversion based on the determining, wherein, during the determining,selecting neighbor samples for a cross-component prediction is applied.In one example, selected neighbor samples may be used forcross-component predictions. For example, a group of selected neighborsamples may be derived based on the reference line index of the multiplereference line (MRL) coding tool. In an example, the reference samplelocated in the same lines/rows indicated by the reference line index ofthe multiple reference line (MRL) coding tool, may be used forcross-component model calculation. In another example, for the referenceline index of the multiple reference line (MRL) coding tool denoted asmrlIdx, the reference sample located in the k-th neighbor lines/rowswhere k=mrlIdx>>factor may be used for cross-component modelcalculation, where the factor is a constant, such as equaling to 1.

Referring to FIG. 49 , a method 4900 of neighbor selection may beperformed by the prediction component 4110, the neighbor selectioncomponent 4125, the processor 4104, and/or the memory 4106. In someimplementations, at block 4904, the method 4900 may determine, for aconversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block. At block 4905, the method 4900 may perform theconversion based on the determining, wherein, during the determining,filtering neighbor samples for a cross-component prediction is applied.In one example, filtered neighbor samples may be used forcross-component predictions. For example, neighbor samples may befiltered according to a rule, and then used for the model derivation forcross-component prediction. For example, a portion of neighbor samplesmay be filtered and used for the model derivation for cross-componentprediction. In one instance, the filter may be a low pass filter. Insome implementations, the filter may be a 1-D filter or a 2-D filter.Different filters may be applied on luma and chroma neighbor samples.

In one example, the above-mentioned method may be applied to eitherneighbor rows or neighbor columns, or both.

For example, the above-mentioned method could be applied to eithersingle tree block partition, or dual tree block partition. Furthermore,if the above-mentioned method is applied to dual tree block partitioncoding, the collocated luma block (which was used to derive mrlIdx forcurrent chroma coding) may be fetched based on the top-left (or center)position associated with the current chroma block.

In an example, if multiple models are used, the above-mentioned methodmay be applied to either one (or some, or all) of the models.

Referring to FIG. 50 , a method 5000 of neighbor selection may beperformed by the prediction component 4110, the neighbor selectioncomponent 4125, the processor 4104, and/or the memory 4106. In someimplementations, at block 5004, the method 500 may determine, for aconversion between a current video block of a video that is a chromablock and a bitstream of the video, utilizing one or more models for across-component prediction associated with a cross-component predictionmode. At block 5005, the method 5000 may perform the conversion based onthe determining. In one example, for a current block, the computingdevice 4102 may be allowed to choose from a cross-component predictionmode classifying neighbors into one group or a cross-componentprediction mode classifying neighbors into N groups. Alternatively, fora current block, the computing device 4102 may be allowed to choose froma cross-component prediction mode classifying neighbors into M group ora cross-component prediction mode classifying neighbors into N groups,wherein M>1 and N>1.

In one example, whether to use single-model or multiple-model (more thanone model) or how many models may be explicit signalled by one ormultiple syntax element(s) (e.g., a flag, or an index). Alternatively,whether to use M-model or N-model cross-component prediction may beexplicitly signalled by a syntax element.

In one example, whether to use single-model or multiple-model (more thanone model) or how many models may be on-the-fly (adaptively) determinedaccording to a rule (e.g., without signalling a syntax element).Alternatively, whether to use M-model or N-model cross-componentprediction may be on-the-fly determined.

In one example, whether to use a X-model cross-component predictionmethod or Y-model cross-component prediction method (Y!=X) may bedependent on a rule based on neighboring samples. In one example, X>=1.In an example, Y>=1. For example, the rule may be dependent on a cost(e.g., sum of absolute differences (SAD), sum of absolute transformeddifferences (SATD), mean squared error (MSE)) value. For example, a costvalue may be calculated for each model on-the-fly. For example, the costvalue may be calculated dependent the distortion between the originalneighbor reconstructed values and the model fitted/predicted neighborvalues. The distortion may be derived as a SAD, or a sum of squareddifference (SSD). For example, the cross-component prediction methodwhich results in a smaller cost may be finally chosen.

In one example, how many groups/models is used for a cross-componentprediction mode may be dependent on a predefined number. For example, Mgroups/models may be used for cross-component prediction mode A1, and Ngroups/models may be used for cross-component prediction mode A2,wherein A1 and A2 are two different cross-component prediction modesallowed in the codec. In one instance, M and N may be constants.Alternatively, M=2 and N=3. In another examples, M=1 and N=2. In someexamples, A1/A2 may be any LM mode from {LM_A, LM_L, CCLM, . . . }. Forexample, single-model LM_A (denoted by mode A1), and two-model LM_A(denoted by mode A2) may be allowed in a codec. And a coding block couldbe coded with either single-mode LM_A or two-model LM_A (but not both).For example, two-model LM_A (denoted by mode A1), and three-model LM_L(denoted by mode A2) may be allowed in a codec. And a coding block couldbe coded with either two-mode LM_A or three-model LM_L (but not both).

In alternative implementations, for a specified cross-componentprediction mode, the number of groups/models used to code the currentcoding block may be determined on-the-fly (other than predefined/fixed).For example, a cross-component prediction mode allows both single-modeland two-model approaches. Therefore, in such case, a coding block usingthis mode may be coded with either single-model or two-model methods,depending on a certain criteria/rule (such as determined by whethersingle-model or two-model fits the neighbors better).

In one example, the number of groups/models used for a cross-componentprediction mode may be adaptively determined by thedistributions/activities/diversities of neighbors. For example, whetherto trigger multiple-model or whether to use M-model or N-modelcross-component prediction may be dependent on how flat the neighborsare. In one example, M>=1 and/or N>=1. For example, a function isapplied on neighboring samples to determine the how flat the neighboringsamples are. The flatness of the neighboring samples may be determinedbased on the variance of the samples. For example, the function maycalculate the variance of the neighboring samples. As variancedecreases, the neighboring samples may be considered to be more flat. Ifthe distribution of neighbor samples/pixels is flat enough (e.g.,variance is less than a threshold), then the multiple-modelcross-component prediction may be disallowed.

In one example, whether to trigger multiple-model (i.e., more than onemodel) cross-component prediction may be dependent on how many neighborsare counted. For example, if the number of counted neighbors is greaterthan (or, not less than) a threshold, then the multiple-modelcross-component prediction may be used. For example, if the number ofcounted neighbors is less than (or, not greater than) a threshold, thenthe multiple-model cross-component prediction may be disallowed. Forexample, the above mentioned counted neighbors may be the neighborpixels/samples that are used for the cross-component prediction mode.The threshold may depend on the dimensions of the current block.

In one example, different models may take different neighbor samples formodel calculation. For example, which neighbors are used for the modelcalculation may be dependent on neighbor samples classification, e.g.,neighbor samples may be classified into different groups based on thesample values, or any functions on sample values, such as the meanvalues, or variances, or the distributions, or the activities, or thediversities. In an example, one of the models may use neighbor samplesfrom both left and above for model calculation. Another model may useneighbor samples from left (or, above) only for model calculation. Inone example, one of the models may use M neighbor samples for modelcalculation. Another model may use N neighbor samples for modelcalculation. In some implementations, M may be dependent on block width,and/or block height and/or N may be dependent on block width, and/orblock height.

In one example, more than one cross-component prediction modes may beapplied to a coding block. In one example, different cross-componentprediction mode may classify neighbors into different number of groups.For example, a first mode considers the neighbors as an entire group andderives a single model for the entire block. While a second mode splitsthe neighbors into T groups and derive T models for the entire block,i.e., one model for one group, wherein T is greater than one. In oneexample, multiple modes may be competed based on the neighbors samples(e.g., based on costs calculation as disclosed in bullet 4). In thiscase, no explicit syntax element is signalled to specify which modeamong multiple modes is finally chosen for the current block coding.

Alternatively, a syntax element (e.g., an index, or a flag) may besignalled in the bitstream to specify which mode (with X models whereinX>=1) is finally chosen for the current block coding. For example, thesyntax element may be coded with unary (or truncated unary, or truncatedrice, or truncated binary, or fix-length) binarization process. Forexample, one or more bins of the syntax element may be context coded. Inanother example, for those cross-component prediction modes whichclassify neighbors into more than one group, its mode index may begreater than (or less than) the mode index of the cross-componentprediction mode which treat neighbors as an entire group.

Whether to/how to signal the syntax element may depend on dimensions ofthe current block. For example, the syntax element may be only signalledin case of the current block being greater than a pre-defined size. Inone example, the syntax element may be only signalled in case of the sumof width and height of the current block being greater than apre-defined threshold. In another example, the syntax element may beonly signalled in case the width is greater than a pre-defined thresholdand/or height of the current block is greater than a pre-definedthreshold. The comparison of greater than may be replaced by less than,not greater than, or not less than.

Referring to FIG. 51 , a method 5100 of multi-model cross-componentprediction may be performed by the prediction component 4110, themulti-model component 4130, the processor 4104, and/or the memory 4106.In some implementations, at block 5104, the method 5100 may determine,for a conversion between a current video block of a video that is achroma block and a bitstream of the video, a first prediction for thecurrent video block based on a first model for a cross-componentprediction associated with a cross-component prediction mode and asecond prediction for the current video block based on a second modelfor a non-cross-component prediction associated with anon-cross-component prediction mode. At block 5105, the method 5100 mayperforming the conversion based on the determining. For example, thenon-cross-component prediction may be a prediction block derived byintra DM mode. For example, the non-cross-component prediction may be aprediction block derived by any intra prediction mode other thancross-component prediction mode. In one example, how to generate thecross-component prediction (which used for blending/mixing) may bedependent on a predefined cross-component prediction mode. In oneexample, how to generate the cross-component prediction (which used forblending/mixing) may be dependent on an adaptive selectedcross-component prediction mode (e.g., a cross-component prediction modedetermined by the cost calculated from neighbors).

In one example, a syntax element (e.g., a flag) may be signalled in thebitstream to specify whether the combined method (e.g., combiningcross-component prediction with a particular prediction mode) is finallychosen for the current block coding. Alternatively, furthermore, thesyntax element may be conditionally signalled. For example, the syntaxelement may be only signalled in case of a particular prediction mode(e.g., intra DM mode) is used for the current block. In an example, thesyntax element may be only signalled in case of some particularprediction modes (e.g., any intra mode excluding cross-component intraprediction mode) is used for the current block. Whether to/how to signalthe syntax element may depend on dimensions of the current block. Forexample, the syntax element may be only signalled in case of the currentblock is greater than a pre-defined size. For example, the syntaxelement may be only signalled in case of the sum of width and height ofthe current block is greater than a pre-defined threshold. For example,the syntax element may be only signalled in case the width is greaterthan a pre-defined threshold and/or height of the current block isgreater than a pre-defined threshold. The comparison of greater than maybe replaced by less than, not greater than, or not less than.

In the above aspects, a third prediction of the current block isgenerated by mixture or combining of a first prediction and a secondprediction and the third prediction is then used to determine thereconstruction with residues at the decoder. Mixture or combining of thefirst prediction and the second prediction and the third prediction mayrefer to the following aspects. A third prediction is generated as aweighted sum of the first prediction and the second prediction. Theweighting values may be fixed such as (1/2, 1/2). The weighting valuesmay vary for different positions in a block. A third prediction isgenerated as spatial mixture of the first prediction and the secondprediction. For some positions, the third prediction is set equal to thefirst prediction. For some other positions, the third prediction is setequal to the second prediction.

Referring to FIG. 52 , a method 5200 of integrating models forcross-component prediction with non-cross-component prediction modelsmay be performed by the prediction component 4110, the non-CCP modelcomponent 4135, the processor 4104, and/or the memory 4106. In someimplementations, at block 5205, the method 5200 may generate a firstprediction block based on a first model for a cross-component predictionassociated with a cross-component prediction mode. At block 5210, themethod 5200 may generate a second prediction block based on a secondmodel for a non-cross-component prediction associated with anon-cross-component prediction mode.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, an offset parameter of a cross-component prediction modelthat is based on a derived sample value from two or more neighborsamples of the current video block and performing the conversion basedon the determining.

Any of the methods above, wherein the cross-component prediction mode isa cross-component linear model mode.

Any of the methods above, wherein the two or more neighbor samplesinclude all neighbor samples of the current video block.

Any of the methods above, wherein the two or more neighbor samples referto neighbor luma samples and/or neighbor chroma samples located at toprows and/or left columns outside the current video block.

Any of the methods above, wherein the two or more neighbor samples arefrom a group of neighbor samples, wherein the group includes a portionof all neighbor samples of the current video block.

Any of the methods above, wherein all neighbor samples are classifiedinto different groups based on at least one of sample values, or anyfunctions on sample values, or variances, or distributions, oractivities, or diversities.

Any of the methods above, wherein the derived sample value is based onat least one of an average chroma value, a midrange chroma value, amedian chroma value, an average luma value, a midrange luma value, or amedian luma value of the two or more neighbor samples.

Any of the methods above, wherein the derived sample value is derivedfrom neighbor reconstructed samples of the current video block.

Any of the methods above, wherein the derived sample value is a derivedchroma value or a derived luma value.

Any of the methods above, wherein determining the offset parametercomprises determining the offset parameter based on the derived chromavalue.

Any of the methods above, wherein determining the offset parametercomprises determining the offset parameter based on the derived chromavalue and a parameter dependent on the derived luma value.

Any of the methods above, wherein the derived sample value is a sum of aminimum value, a maximum value, and an offset factor, wherein the sum isright-shifted by a shift factor.

Any of the methods above, wherein the shift factor is equal to 2 or 4.

Any of the methods above, wherein the offset factor is a constant value.

Any of the methods above, wherein the offset factor is equal to 0, 1 or2.

Any of the methods above, wherein the offset factor is dependent on theshift.

Any of the methods above, wherein the minimum value is a minimum valueassociated with the two or more neighbor samples of the current videoblock.

Any of the methods above, wherein the maximum value is a maximum valueassociated with the two or more neighbor samples of the current videoblock.

Any of the methods above, wherein the minimum value is an average of Nsmallest neighbors samples of two or more neighbor samples of thecurrent video block, wherein Nis a constant.

Any of the methods above, wherein the maximum value is an average of Nlargest neighbors samples of two or more neighbor samples of the currentvideo block, wherein Nis a constant.

Any of the methods above, wherein N=2.

Any of the methods above, wherein the derived sample value is a sum of aparameter S and an offset factor, wherein the sum is right-shifted by ashift factor.

Any of the methods above, wherein the shift factor is dependent on anumber of the neighbor reconstructed samples.

Any of the methods above, wherein the shift factor is a constant value.

Any of the methods above, wherein the shift factor is equal to 2 or 4.

Any of the methods above, wherein the offset factor is equal to 0, 1 or2.

Any of the methods above, wherein the offset factor is dependent on theshift factor.

Any of the methods above, wherein the parameter S is a parameter sum ofL neighbor samples of the current video block, wherein L equals toa×blockWidth, b×blockHeight, or c×(blockWidth+blockHeight), wherein a,b, and c are integers.

Any of the methods above, wherein determining the offset parameterfurther comprises determining the offset parameter based on one or moremodels.

Any of the methods above, wherein determining the offset parameterfurther comprises determining the offset parameter during across-component linear model left-top (CCLM-LT) mode, a cross-componentlinear model left (CCLM-L) mode, or a cross-component linear model top(CCLM-T) mode.

Any of the methods above, wherein the offset parameter is a differencebetween a derived chroma and a product of α and a derived luma value,wherein α is scaling parameter applying to a luma reconstructed valueand the difference is right-shifted by a shift factor.

Any of the methods above, wherein the two or more neighbor samples areadjacent to the current video block, wherein the current video blockincludes at least one of a chroma block or a luma block.

Any of the methods above, wherein the two or more neighbor samples arenon-adjacent to the current video block, wherein the current video blockincludes at least one of a chroma block or a luma block.

Any of the methods above, wherein an indication that the two or moreneighbor samples are non-adjacent is included in the bitstream orderived on-the-fly.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock coded with a multiple-model cross-component prediction mode and abitstream of the video, a scaling parameter associated with a model or agroup is dependent on neighbor samples of the current video blockassociated with the model or the group and performing the conversionbased on the determining.

Any of the methods above, wherein the scaling parameter is dependent ona smallest neighbor sample associated with the model or the group and/ora largest neighbor samples associated with the model or the group.

Any of the methods above, wherein the scaling parameter is dependent onmore than one smallest neighbor sample associated with the model or thegroup and/or more than one largest neighbor samples associated with themodel or the group.

Any of the methods above, wherein all neighbor samples of current videoblock are classified into different groups based on at least one ofsample values, or any functions on sample values, or variances, ordistributions, or activities, or diversities.

Any of the methods above, wherein the scaling parameter is dependent onan average value, a midrange value, a median value, or a mean value of Nsmallest neighbor samples or N largest neighbor samples.

Any of the methods above, wherein Nis a constant.

Any of the methods above, wherein N=2.

Any of the methods above, wherein Nis dependent on coded information.

Any of the methods above, wherein the coded information includes atleast one of a block width or a block height.

Any of the methods above, wherein N is dependent on a number of theneighbor samples in the group.

Any of the methods above, wherein N is dependent on a number of countedneighbor samples of the current video block, wherein the countedneighbor samples satisfy a condition.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block, and performing the conversion based on thedetermining, wherein during the determining, resampling more than onerow of neighbor samples of the current video block or more than onecolumn of neighbor samples of the current video block is applied.

Any of the methods above, wherein the cross-component prediction mode isa cross-component linear model mode or a multiple-model cross-componentprediction mode.

Any of the methods above, wherein the more than one row of neighborsinclude more than one row of chroma neighbors or more than one row ofluma neighbors and the more than one column of neighbors include morethan one column of chroma neighbors or more than one column of lumaneighbors.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block and performing the conversion based on thedetermining, wherein the model parameters are based on neighboringsamples of the current video block, wherein at least one of a number orpositions of the neighboring samples are dependent on at least one of ablock width or a block height of the current video block.

Any of the methods above, wherein the cross-component prediction mode isa cross-component linear model mode or a multiple-model cross-componentprediction mode.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block and performing the conversion based on thedetermining, wherein, during the determining, performing a bit-depthshift operation is applied.

Any of the methods above, wherein the cross-component prediction mode isa cross-component linear model mode or a multiple-model cross-componentprediction mode.

Any of the methods above, further comprises left shifting at least oneof the model parameters by K bits before performing the bit-depth shiftdivision operation and right shifting the at least one of the modelparameters by K bits after performing the bit-depth shift divisionoperation.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block using a non-linear model and performing theconversion based on the determining.

Any of the methods above, wherein the cross-component prediction mode isa cross-component linear model mode or a multiple-model cross-componentprediction mode.

Any of the methods above, wherein calculating the model parameterscomprises predicting a chroma sample C based on a luma reconstructedsample Y using a first function f(Y)=a Y²+b Y+c or a second functionf(Y)=clip3(minC, maxC, a Y+b) where a, b, and c are real numbers.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block and performing the conversion based on thedetermining, wherein, during the determining, selecting neighbor samplesfor a cross-component prediction is applied.

Any of the methods above, further comprising determining a group of theselected neighbor samples based on a reference line index of a multiplereference line (MRL) coding tool.

Any of the methods above, wherein a reference sample located in samelines or same rows indicated by the reference line index of MRL codingtool is used for the cross-component prediction.

Any of the methods above, wherein the reference line index is smallerthan, or smaller than or equal to, a factor.

Any of the methods above, wherein the selecting neighbor samples isapplied to at least one of neighbor rows or neighbor columns.

Any of the methods above, wherein the selecting neighbor samples isapplied to at least one of a single tree block partition or a dual treeblock partition.

Any of the methods above, further comprising identifying a collocatedluma block at a top-left position or center position of the currentvideo block for dual tree block partition.

Any of the methods above, wherein selecting the neighbor samplescomprises selecting the neighbor samples for at least one model ofmultiple models used for the cross-component prediction.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock coded with a cross-component prediction mode and a bitstream ofthe video, model parameters for a cross-component prediction model forthe current video block, performing the conversion based on thedetermining, wherein, during the determining, filtering neighbor samplesfor a cross-component prediction is applied.

Any of the methods above, wherein filtering the neighbor samplescomprises filtering the neighbor samples with one or more rules

Any of the methods above, wherein filtering the neighbor samplescomprises filtering with a low pass filter.

Any of the methods above, wherein filtering the neighbor samplescomprises filtering with a 1-D filter or a 2-D filter.

Any of the methods above, wherein filtering the neighbor samplescomprises filtering luma neighbor samples with a first filter and chromaneighbor samples with a second filter.

Any of the methods above, wherein filtering the neighbor samples isapplied to at least one of neighbor rows or neighbor columns.

Any of the methods above, wherein the filtering the neighbor samples isapplied to at least one of a single tree block partition or a dual treeblock partition.

Any of the methods above, further comprising identifying a collocatedluma block at a top-left position or center position of the currentvideo block for dual tree block partition.

Any of the methods above, wherein filtering the neighbor samplescomprises filtering the neighbor samples for at least one model ofmultiple models used for the cross-component prediction.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock and a bitstream of the video, utilizing one or more models for across-component prediction associated with a cross-component predictionmode and performing the conversion based on the determining.

Any of the methods above, wherein the cross-component prediction mode isa first cross-component prediction mode that classifies neighbors of thecurrent video block into one group.

Any of the methods above, wherein the cross-component prediction mode isa second cross-component prediction mode that classifies the neighborsinto N groups.

Any of the methods above, wherein the cross-component prediction mode isselected from at least two cross-component prediction mode, wherein theat least two cross-component prediction mode include a firstcross-component prediction mode that classifies neighbors of the currentvideo block into M groups and a second cross-component prediction modethat classifies the neighbors into N groups.

Any of the methods above, wherein M=1, and N is larger than 1.

Any of the methods above, wherein M is larger than 1, and N is largerthan 1.

Any of the methods above, wherein an indicator indicating utilizing theone or more models for the cross-component prediction is included in thebitstream.

Any of the methods above, wherein a first syntax element indicating anumber of models for the cross-component prediction is included in thebitstream.

Any of the methods above, wherein a second syntax element indicatingutilizing a M-mode cross-component prediction or a N-modecross-component prediction is included in the bitstream.

Any of the methods above, further comprising determining, on-the-fly, toutilize the one or more models for the cross-component prediction.

Any of the methods above, further comprising determining, on-the-fly, anumber of models for the cross-component prediction.

Any of the methods above, further comprising determining, on-the-fly, toutilize a M-mode cross-component prediction or a N-mode cross-componentprediction.

Any of the methods above, wherein M and N are constants.

Any of the methods above, wherein M=2 and N=3.

Any of the methods above, wherein M=1 and N=2.

Any of the methods above, further comprising determining to utilize aX-model cross-component prediction method or a Y-model cross-componentprediction method based on a rule associated with neighbor samples.

Any of the methods above, wherein X is greater than or equal to 1.

Any of the methods above, wherein Y is greater than or equal to 1.

Any of the methods above, wherein the rule is dependent on a cost valueor a cost function.

Any of the methods above, wherein the cost value or the cost function isassociated with at least one of a sum of absolute differences (SAD), asum of absolute transformed differences (SATD), a mean squared error(MSE), a sum of squared differences (SSD), or a peak signal-to-noiseratio (PSNR).

Any of the methods above, further comprising calculating the costvalues, on-the-fly, associated with the SAD, the SATD, the MSE, the SSD,or the PSNR.

Any of the methods above, wherein calculating the cost value furthercomprises calculating the cost value based on a distortion betweenoriginal neighbor reconstructed values and model predicted neighborvalues.

Any of the methods above, further comprising selecting a lowest costvalue of the calculated cost values.

Any of the methods above, further comprising determining a first numberof groups or a second number of models utilized for the cross-componentprediction.

Any of the methods above, wherein the first number and the second numberare constants.

Any of the methods above, wherein the cross-component prediction mode isone of a linear mode above, a linear mode left, or a cross-componentlinear mode.

Any of the methods above, wherein determining the first number or thesecond number comprises determining the first number or the secondnumber on-the-fly.

Any of the methods above, further comprising determining, adaptively, afirst number of groups or a second number of models utilized for thecross-component prediction based on at least one of distributions ofneighbors, activities of the neighbors, or diversities of the neighbors.

Any of the methods above, wherein the first number is greater than orequal to 1.

Any of the methods above, wherein the second number is greater than orequal to 1.

Any of the methods above, wherein determining comprises determining avariance of the neighbors.

Any of the methods above, wherein when the variance of the neighbors issmaller than (smaller than or equal to) a threshold, the multiple-modelcross-component prediction is disallowed.

Any of the methods above, further comprising determining a number ofmodels utilized for the cross-component prediction based on a number ofcounted neighbors.

Any of the methods above, wherein determining comprises comparing thenumber of counted neighbors to a threshold and determining the number ofmodels to be greater than one in response to the number of countedneighbors being larger than the threshold

Any of the methods above, further comprising refraining from utilizingmultiple model cross-component prediction in response to the number ofcounted neighbors being lower than the threshold.

Any of the methods above, wherein the number of counted neighbors equalsto a first number of neighbor pixels or a second number of neighborsamples used for the cross-component prediction.

Any of the methods above, wherein the threshold is dependent ondimensions of the current video block.

Any of the methods above, wherein utilizing the one or more modelscomprises utilizing a first model for first neighbor samples and asecond model for second neighbor samples for the cross-componentprediction.

Any of the methods above, further comprising determining to utilize theone or more models based on neighbor samples classifications of at leastone of sample values, mean values of the sample values, variances of thesample values, distributions of sample values, activities, ordiversities.

Any of the methods above, wherein the first model uses a first number ofneighbor samples for calculation and the second model uses a secondnumber of neighbor samples for calculation.

Any of the methods above, wherein at least one of the first number orthe second number is dependent on a block width of the current videoblock or a block height of the current video block.

Any of the methods above, further comprising applying more than onecross-component prediction modes to the current video block.

Any of the methods above, wherein a first cross-component predictionmode of the more than one cross-component prediction modes classifiesneighbors into a first number of groups and a second cross-componentprediction mode of the more than one cross-component prediction modesclassifies the neighbors into a second number of groups.

Any of the methods above, wherein the first cross-component predictionmode utilizes a first model for the current video block and the secondcross-component prediction mode utilizes a plurality of models for thecurrent video block.

Any of the methods above, wherein a syntax element indicating one ormore selected modes of the more than one cross-component predictionmodes for the current video block is included in the bitstream.

Any of the methods above, wherein the syntax element is coded with aunary, a truncated unary, a truncated rice, a truncated binary, or afixed length binarization process.

Any of the methods above, wherein one or more bins of the syntax elementare context coded.

Any of the methods above wherein a first cross-component prediction modeof the more than one cross-component prediction modes has a first modeindex and a second cross-component prediction mode of the more than onecross-component prediction modes has a second mode index, the firstcross-component prediction mode classifies neighbors into a plurality ofgroups, the second cross-component prediction mode classifies neighborsinto a group, and the first mode index is greater than the second modeindex.

Any of the methods above, wherein the syntax element is included in thebitstream based on dimensions of the current video block.

Any of the methods above, wherein the syntax element is included in thebitstream in response to a size of the current video block is largerthan, or larger than or equal to, a threshold size.

Any of the methods above, wherein the syntax element is included in thebitstream in response to a sum of a width of the current video block anda height of the current video block is larger than, or larger than orequal to, a threshold.

Any of the methods above, wherein the syntax element is included in thebitstream in response to a width of the current video block is largerthan, or larger than or equal to, a threshold width or a height of thecurrent video block is larger than, or larger than or equal to, athreshold height.

Aspects of the present disclosure include a method for determining, fora conversion between a current video block of a video that is a chromablock and a bitstream of the video, a first prediction for the currentvideo block based on a first model for a cross-component predictionassociated with a cross-component prediction mode and a secondprediction for the current video block based on a second model for anon-cross-component prediction associated with a non-cross-componentprediction mode and performing the conversion based on the determining.

Any of the methods above, further comprising combining the firstprediction and the second prediction.

Any of the methods above, wherein the combining the first prediction andthe second prediction comprises blending or mixing the first predictionand the second prediction.

Any of the methods above, wherein the non-cross-component predictionmode is an intra derived mode.

Any of the methods above, wherein the non-cross-component predictionmode is an intra prediction mode.

Any of the methods above, wherein determining the first predictioncomprises determining the first prediction based on an adaptivelyselected cross-component prediction mode.

Any of the methods above, wherein determining the first predictioncomprises determining the first prediction based on a predefinedcross-component prediction mode.

Any of the methods above, further comprising a syntax element forindicating a selection of the cross-component prediction mode and thenon-cross-component prediction mode is included in the bitstream.

Any of the methods above, wherein the syntax element is conditionallyincluded in the bitstream.

Any of the methods above, wherein the syntax element is included in thebitstream based at least on the non-cross-component prediction mode orthe cross-component prediction mode.

Any of the methods above, wherein the syntax element is included in thebitstream based on dimensions of the current video block.

Any of the methods above, wherein the syntax element is included in thebitstream in response to a size of the current video block is largerthan (larger than or equal to) a threshold size.

Any of the methods above, wherein the syntax element is included in thebitstream in response to a sum of a width of the current video block anda height of the current video block is larger than, or larger than orequal to, a threshold.

Any of the methods above, wherein the syntax element is included in thebitstream in response to a width of the current video block is largerthan, or larger than or equal to, a threshold width or a height of thecurrent video block is larger than, or larger than or equal to, athreshold height.

Any of the methods above, further comprising determining a thirdprediction based on the first prediction and the second prediction.

Any of the methods above, wherein determining the third predictioncomprises applying a first weight to the first prediction and applying asecond weight to the second prediction.

Any of the methods above, wherein the first weight is 0.5 and the secondweight is 0.5.

Any of the methods above, wherein the first weight and the second weightare different for different positions in the current video block.

Any of the methods above, wherein the third prediction is a spatialmixture of the first prediction and the second prediction.

Any of the methods above, wherein a first portion of the thirdprediction is identical to a first portion of the first prediction and asecond portion of the third prediction is identical to a second portionof the second prediction.

Any of the methods above, wherein the conversion includes encoding thecurrent video block into the bitstream.

Any of the methods above, wherein the conversion includes decoding thecurrent video block from the bitstream.

Any of the methods above, wherein the conversion includes generating thebitstream from the current video block; and the method further comprisesstoring the bitstream in a non-transitory computer-readable recordingmedium.

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, an offsetparameter of a cross-component prediction model that is based on aderived sample value from two or more neighbor samples of the currentvideo block and perform the conversion based on the determining.

Aspects of the present disclosure include an non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, an offsetparameter of a cross-component prediction model that is based on aderived sample value from two or more neighbor samples of the currentvideo block and generating the bitstream from the current video blockbased on the determining.

Aspects of the present disclosure include a determine, for a conversionbetween a current video block of a video that is a chroma block codedwith a cross-component prediction mode and a bitstream of the video, anoffset parameter of a cross-component prediction model that is based ona derived sample value from two or more neighbor samples of the currentvideo block and perform the conversion based on the determining.

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block coded with amultiple-model cross-component prediction mode and a bitstream of thevideo, a scaling parameter associated with a model or a group isdependent on neighbor samples of the current video block associated withthe model or the group and perform the conversion based on thedetermining.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block coded with amultiple-model cross-component prediction mode and a bitstream of thevideo, a scaling parameter associated with a model or a group isdependent on neighbor samples of the current video block associated withthe model or the group and generating the bitstream from the currentvideo block based on the determining.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determine, for a conversion between a current video blockof a video that is a chroma block coded with a multiple-modelcross-component prediction mode and a bitstream of the video, a scalingparameter associated with a model or a group is dependent on neighborsamples of the current video block associated with the model or thegroup and perform the conversion based on the determining.

Aspects of the present disclosure include a apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and perform the conversion based on the determining, whereinduring the determining, resampling more than one row of neighbor samplesof the current video block or more than one column of neighbor samplesof the current video block is applied.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and generating the bitstream from the current video block based onthe determining, wherein during the determining, resampling more thanone row of neighbor samples of the current video block or more than onecolumn of neighbor samples of the current video block is applied.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determine, for a conversion between a current video blockof a video that is a chroma block coded with a cross-componentprediction mode and a bitstream of the video, model parameters for across-component prediction model for the current video block and performthe conversion based on the determining, wherein during the determining,resampling more than one row of neighbor samples of the current videoblock or more than one column of neighbor samples of the current videoblock is applied.

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and perform the conversion based on the determining, wherein themodel parameters are based on neighboring samples of the current videoblock, wherein at least one of a number or positions of the neighboringsamples are dependent on at least one of a block width or a block heightof the current video block.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and generating the bitstream from the current video block based onthe determining, wherein the model parameters are based on neighboringsamples of the current video block, wherein at least one of a number orpositions of the neighboring samples are dependent on at least one of ablock width or a block height of the current video block.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determine, for a conversion between a current video blockof a video that is a chroma block coded with a cross-componentprediction mode and a bitstream of the video, model parameters for across-component prediction model for the current video block and performthe conversion based on the determining, wherein the model parametersare based on neighboring samples of the current video block, wherein atleast one of a number or positions of the neighboring samples aredependent on at least one of a block width or a block height of thecurrent video block.

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and perform the conversion based on the determining, wherein,during the determining, performing a bit-depth shift operation isapplied.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and generating the bitstream from the current video block based onthe determining, wherein, during the determining, performing a bit-depthshift operation is applied.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determine, for a conversion between a current video blockof a video that is a chroma block coded with a cross-componentprediction mode and a bitstream of the video, model parameters for across-component prediction model for the current video block and performthe conversion based on the determining, wherein, during thedetermining, performing a bit-depth shift operation is applied

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock using a non-linear model and perform the conversion based on thedetermining.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock using a non-linear model and generating the bitstream from thecurrent video block based on the determining.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determine, for a conversion between a current video blockof a video that is a chroma block coded with a cross-componentprediction mode and a bitstream of the video, model parameters for across-component prediction model for the current video block using anon-linear model and perform the conversion based on the determining.

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and perform the conversion based on the determining, wherein,during the determining, selecting neighbor samples for a cross-componentprediction is applied.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and generating the bitstream from the current video block based onthe determining, wherein, during the determining, selecting neighborsamples for a cross-component prediction is applied.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determine, for a conversion between a current video blockof a video that is a chroma block coded with a cross-componentprediction mode and a bitstream of the video, model parameters for across-component prediction model for the current video block and performthe conversion based on the determining, wherein, during thedetermining, selecting neighbor samples for a cross-component predictionis applied.

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and perform the conversion based on the determining, wherein,during the determining, filtering neighbor samples for a cross-componentprediction is applied.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block coded with across-component prediction mode and a bitstream of the video, modelparameters for a cross-component prediction model for the current videoblock and generating the bitstream from the current video block based onthe determining, wherein, during the determining, filtering neighborsamples for a cross-component prediction is applied.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determine, for a conversion between a current video blockof a video that is a chroma block coded with a cross-componentprediction mode and a bitstream of the video, model parameters for across-component prediction model for the current video block and performthe conversion based on the determining, wherein, during thedetermining, filtering neighbor samples for a cross-component predictionis applied.

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block and a bitstream ofthe video, utilizing one or more models for a cross-component predictionassociated with a cross-component prediction mode and perform theconversion based on the determining.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block and a bitstream ofthe video, utilizing one or more models for a cross-component predictionassociated with a cross-component prediction mode and generating thebitstream from the current video block based on the determining.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determining, for a conversion between a current video blockof a video that is a chroma block and a bitstream of the video,utilizing one or more models for a cross-component prediction associatedwith a cross-component prediction mode and performing the conversionbased on the determining.

Aspects of the present disclosure include an apparatus for processingvideo data comprising a processor and a non-transitory memory withinstructions thereon, wherein the instructions upon execution by theprocessor, cause the processor to determine, for a conversion between acurrent video block of a video that is a chroma block and a bitstream ofthe video, a first prediction for the current video block based on afirst model for a cross-component prediction associated with across-component prediction mode and a second prediction for the currentvideo block based on a second model for a non-cross-component predictionassociated with a non-cross-component prediction mode and perform theconversion based on the determining.

Aspects of the present disclosure include a non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises determining, for a conversion between acurrent video block of a video that is a chroma block and a bitstream ofthe video, a first prediction for the current video block based on afirst model for a cross-component prediction associated with across-component prediction mode and a second prediction for the currentvideo block based on a second model for a non-cross-component predictionassociated with a non-cross-component prediction mode and generating thebitstream from the current video block based on the determining.

Aspects of the present disclosure include a non-transitorycomputer-readable storage medium storing instructions that cause aprocessor to determine, for a conversion between a current video blockof a video that is a chroma block and a bitstream of the video, a firstprediction for the current video block based on a first model for across-component prediction associated with a cross-component predictionmode and a second prediction for the current video block based on asecond model for a non-cross-component prediction associated with anon-cross-component prediction mode and perform the conversion based onthe determining.

Aspects of the present disclosure include the following features.

To solve the above problems and some other problems not mentioned,methods as summarized below are disclosed. The inventions should beconsidered as examples to explain the general concepts and should not beinterpreted in a narrow way. Furthermore, these inventions can beapplied individually or combined in any manner.

In the following discussion, blockWidth, and blockHeight represent thewidth and height of the current block, respectively.

CCLM may refer to any kinds of CCLM modes, such as CCLM-L, CCLM-T,CCLM-LT, or multi-model CCLM.

-   1. Regarding the beta value derivation of cross-component    predictions for solving the 1^(st) problem, one or more of the    following approaches are disclosed:    -   1) In one example, the parameter “beta” may be calculated based        on a function such as average/mid/median/mean luma/chroma values        from all neighbors.    -   2) In one example, the parameter “beta” may be calculated based        on a function such as average/mid/median/mean luma/chroma values        from a portion of more than one neighbors.    -   3) In one example, “beta” derivation may be dependent on derived        chroma value(s) and/or derived luma value(s). A chroma or luma        derived value represent a value derived from reconstructed        chroma or luma samples.        -   a. In one example, the calculation of “beta” may be            dependent on a derived chroma value.        -   b. In one example, the calculation of “beta” may be            dependent on a derived chroma value and a parameter            dependent on a derived luma value.        -   c. For example, a derived value (e.g., derived luma value or            derived chroma value) may be calculated as            (min+max+offset)>>shift, wherein,            -   i. For example, shift may be a constant, e.g., 2, 4, and                etc.            -   ii. For example, offset may be a constant, e.g., 0, 1,                2, and etc.            -   iii. For example, offset may be dependent on the value                of “shift”, e.g., offset is equal to (1<<shift)>>1.            -   iv. For example, min may be the smallest value among all                neighbor samples or a subset of neighbor samples.                -   a) Additionally, max may be the greatest value among                    all neighbor samples or a subset of neighbor                    samples.            -   v. For example, min may be the average of N smallest                neighbor samples among all neighbor samples or a subset                of neighbor samples, where N is a constant, such as N=2.                -   a) Additionally, max may be the average of M                    greatest neighbor samples among all neighbor samples                    or a subset of neighbor samples, where M is a                    constant, such as M=2.        -   d. For example, the derived sample value may be calculated            as (S+offset)>>shift, wherein,            -   i. For example, shift may be dependent on the number of                samples that used for the above calculation.            -   ii. For example, shift may be a constant, e.g., 2, 4,                and etc.            -   iii. For example, offset may be a constant, e.g., 0, 1,                2, and etc.            -   iv. For example, offset may be dependent on the value of                “shift”, e.g., offset is equal to (1<<shift)>>1.            -   v. For example, S may be calculated as the sum of the                values of L neighbor samples, wherein L=a*blockWidth, or                b*blockHeight, or c*(blockWidth+blockHeight), and a, b,                and c are integers.    -   4) For example, the disclosed methods may be appropriate single        or multiple model calculations.        -   a. For example, if multiple models are used, the disclosed            methods may be applied to either one (or some, or all) of            the model derivation.    -   5) For example, the disclosed methods may be applied to any        kinds of CCLM mode, such as CCLM-LT, CCLM-T or CCLM-L.    -   6) Beta may be calculated by the derived values as:        beta=derivedChroma−((alpha*derivedLuma)>>shiftX), wherein        “alpha” denotes the scaling factor applying to luma        reconstructed value, “shiftX” denotes a constant value, and        “derivedChroma” and “derivedLuma” may be calculated based on the        disclosed methods.    -   7) In above examples, the neighboring samples are those adjacent        from current chroma block and/or corresponding luma block of the        current chroma block.        -   a. Alternatively, the neighboring samples are those            non-adjacent from current chroma block and/or corresponding            luma block of the current chroma block.            -   i. In one example, indication of the non-adjacent                samples may be signaled or derived on-the-fly.

$\alpha = {\frac{Y_{1} - Y_{2}}{X_{1} - X_{2}}.}$

-   2. Suppose α used in a CCLM mode is derived as Regarding the higher    accuracy/robust model derivation for cross-component predictions for    solving the 2^(nd) problem, one or more of the following approaches    are disclosed:    -   1) In one example, when multiple-model cross-component        prediction is used, the derivation of X₂ and/or Y₂ for a        particular model/group, may be dependent on (e.g. equal to) a        function (e.g., the average/mid/median/mean) of N smallest        neighbor samples belong to this group (or corresponding to this        model).        -   a. Similarly, when multiple-model cross-component prediction            is used, the derivation of X₁ and/or Y₁ for a particular            model/group, may be dependent on (e.g. equal to) a function            (e.g., the average/mid/median/mean) of N greatest neighbor            samples belong to this group (or corresponding to this            model).        -   b. For example, N may be a constant, such as N=2.        -   c. For example, N may be dependent on coded information,            e.g., the block width, and/or block height.        -   d. For example, N may be dependent on how many neighbor            samples belong to this group, e.g., N=1 if there are less            than T counted neighbor samples belong to this group, and            N=2 if the number of counted neighbor samples belong to this            group is greater than or equal to T, where by T is a            constant, such as T=4.        -   e. For example, the above mentioned “counted neighbor            sample” may be neighbor sample which satisfy a            pre-determined condition, e.g., conditioned on the location,            the sample value, and etc.    -   2) In one example, more than one rows/columns of luma neighbors        which may be resampled may be taken into account for model        derivation.        -   a. Similarly, more than one rows/columns of chroma neighbors            may be taken into account for model derivation.    -   3) In one example, the number and positions of neighboring        samples used for model calculation may be dependent on the block        width and/or height.    -   4) In one example, internal high bit-depth division operation        may be used for model derivation.        -   a. For example, the numbers may be left shifted by K bits            before the division operation and right-shifted by K bits            after the division operation.    -   5) In one example, a non-linear model may be used for        cross-component predictions.        -   a. For example, a chroma sample C may be predicted by a            function f on a luma reconstructed sample (may be            down-sampled) Y as C=f(Y), where f is a non-linear function,            such as f(Y)=aY²+bY+c or f(Y)=clip3(minC, maxC, aY+b).-   3. Regarding the neighbor selection for model derivation for    cross-component predictions for solving the 3^(rd) problem,    following approaches are disclosed:    -   1) In one example, selected neighbor samples may be used for        cross-component predictions.        -   a. For example, a group of selected neighbor samples may be            derived based on the reference line index of the multiple            reference line (MRL) coding tool.            -   i. For example, the reference sample located in the same                lines/rows indicated by the reference line index of the                multiple reference line (MRL) coding tool, may be used                for cross-component model calculation.            -   ii. For example, suppose the reference line index of the                multiple reference line (MRL) coding tool is denoted as                “mrlIdx”, the reference sample located in the k-th                neighbor lines/rows wherein k=“mrlIdx>>factor” may be                used for cross-component model calculation, wherein                “factor” is a constant, such as “factor” equal to 1.    -   2) In one example, filtered neighbor samples may be used for        cross-component predictions.        -   a. For example, neighbor samples may be filtered according            to a rule, and then used for the model derivation for            cross-component prediction.        -   b. For example, a portion of neighbor samples may be            filtered and used for the model derivation for            cross-component prediction.        -   c. The filter may be a low pass filter.        -   d. The filter may be a 1-D filter or a 2-D filter.        -   e. Different filters may be applied on luma and chroma            neighbor samples.    -   3) For example, the above-mentioned method may be applied to        either neighbor rows or neighbor columns, or both of them.    -   4) For example, the above-mentioned method could be applied to        either single tree block partition, or dual tree block        partition.        -   a. Furthermore, if the above-mentioned method is applied to            dual tree block partition coding, the collocated luma block            (which used to derive mrlIdx for current chroma coding) may            be fetched based on the top-left (or center) position            associated with the current chroma block.    -   5) For example, if multiple models are used, the above-mentioned        method may be applied to either one (or some, or all) of the        models.-   4. Regarding multiple models cross-component predictions for solving    the 4^(th) problem, one or more of the following approaches are    disclosed:    -   1) In one example, more than one models may be allowed/used for        a cross-component prediction mode.        -   a. In one example, for a current block, it may be allowed to            choose from a cross-component prediction mode classifying            neighbors into one group or a cross-component prediction            mode classifying neighbors into N groups.            -   i. Alternatively, for a current block, it may be allowed                to choose from a cross-component prediction mode                classifying neighbors into M group or a cross-component                prediction mode classifying neighbors into N groups,                wherein M>1 and N>1.        -   b. In one example, whether to use single-model or            multiple-model (more than one models) or how many models may            be explicit signalled by one or multiple syntax element(s)            (e.g., a flag, or an index).            -   i. Alternatively, whether to use M-model or N-model                cross-component prediction may be explicit signalled by                a syntax element.        -   c. In one example, whether to use single-model or            multiple-model (more than one models) or how many models may            be on-the-fly (adaptively) determined according to a rule            (e.g., without signalling a syntax element).            -   i. Alternatively, whether to use M-model or N-model                cross-component prediction may be on-the-fly determined.        -   d. In one example, whether to use a X-model cross-component            prediction method or Y-model cross-component prediction            method (Y!=X) may be dependent on a rule based on            neighboring samples.            -   i. For example, X>=1.            -   ii. For example, Y>=1.            -   iii. For example, the rule may be dependent on a cost                (e.g., SAD, SATD, MSE) value.                -   a) For example, a cost value may be calculated for                    each model on-the-fly.                -   b) For example, the cost value may be calculated                    dependent the distortion between the original                    neighbor reconstructed values and the model                    fitted/predicted neighbor values. E.g. the                    distortion may be derived as a sum of absolute                    difference (SAD), or a sum of squared difference                    (SSD).                -   c) For example, the cross-component prediction                    method which results in a smaller cost may be                    finally chosen.        -   e. In one example, how many groups/models is used for a            cross-component prediction mode may be dependent on a            predefined number.            -   i. For example, M groups/models are always used for                cross-component prediction mode A1, and N groups/models                are always used for cross-component prediction mode A2,                wherein A1 and A2 are two different cross-component                prediction modes allowed in the codec.                -   a) For example, M and N are constants.                -   b) For example, M=2, and N=3.                -   c) For example, M=1, and N=2.                -   d) For example, A1/A2 could be any LM mode from                    {LM_A, LM_L, CCLM, . . . }.                -   e) For example, single-model LM_A (denoted by mode                    A1), and two-model LM_A (denoted by mode A2) may be                    always allowed in a codec. And a coding block could                    be coded with either single-mode LM_A or two-model                    LM_A (but never both).                -   f) For example, two-model LM_A (denoted by mode A1),                    and three-model LM_L (denoted by mode A2) may be                    always allowed in a codec. And a coding block could                    be coded with either two-mode LM_A or three-model                    LM_L (but never both).            -   ii. Alternatively, for a specified cross-component                prediction mode, how many groups/models are used to code                the current coding block may be determined on-the-fly                (other than predefined/fixed).                -   a) For example, a cross-component prediction mode                    allows both single-model and two-model approaches.                    Therefore, in such case, a coding block using this                    mode may be coded with either single-model or                    two-model methods, depending on a certain                    criteria/rule (such as determined by whether                    single-model or two-model fits the neighbors                    better).        -   f. In one example, how many groups/models is used for a            cross-component prediction mode may be adaptively determined            by the distributions/activities/diversities of neighbors.            -   i. For example, whether to trigger multiple-model or                whether to use M-model or N-model cross-component                prediction may be dependent on how flat the neighbors                is.                -   a) For example, M>=1.                -   b) For example, N>=1.                -   c) For example, a function is applied on neighboring                    samples to determine the how flat the neighboring                    samples are. E.g. the function may calculate the                    variance of the neighboring samples. The neighboring                    samples is more “flat” if the variance is smaller.            -   ii. For example, if the distribution of neighbor                samples/pixels is flat enough, then the multiple-model                cross-component prediction may be disallowed.        -   g. In one example, whether to trigger multiple-model (i.e.,            more than one models) cross-component prediction may be            dependent on how many neighbors are counted.            -   i. For example, if the number of counted neighbors is                greater than (or, no less than) a threshold, then the                multiple-model cross-component prediction may be used.            -   ii. For example, if the number of counted neighbors is                less than (or, no greater than) a threshold, then the                multiple-model cross-component prediction may be                disallowed.            -   iii. For example, the above mentioned “counted                neighbors” may be the neighbor pixels/samples that are                used for the cross-component prediction mode.            -   iv. The threshold may depend on the dimensions of the                current block.    -   2) In one example, different models may take different neighbor        samples for model calculation.        -   a. For example, what neighbors are used for the model            calculation may be dependent on neighbor samples            classification, e.g., neighbor samples may be classified            into different groups based on the sample values, or any            functions on sample values, such as the mean values, or            variances, or the distributions, or the activities, or the            diversities.        -   b. For example, one of the models may use neighbor samples            from both left and above for model calculation. And, another            model may use neighbor samples from left (or, above) only            for model calculation.        -   c. For example, one of the models may use M neighbor samples            for model calculation. And, another model may use N neighbor            samples for model calculation.            -   i. For example, M may be dependent on block width,                and/or block height.            -   ii. For example, N may be dependent on block width,                and/or block height.    -   3) In one example, more than one cross-component prediction        modes may be applied to a coding block.        -   a. In one example, different cross-component prediction            modes classify neighbors into different number of groups.        -   b. For example, a first mode considers the neighbors as an            entire group and derives a single model for the entire            block. While a second mode splits the neighbors into T            groups and derive T models for the entire block, i.e., one            model for one group, wherein T is greater than one.        -   c. In one example, multiple modes may be competed based on            the neighbors samples (e.g., based on costs calculation as            disclosed in bullet 4). In this case, no explicit syntax            element is signalled to specify which mode among multiple            modes is finally chosen for the current block coding.        -   d. Alternatively, a syntax element (e.g., an index, or a            flag) may be signalled in the bitstream to specify which            mode (with X models wherein X>=1) is finally chosen for the            current block coding.            -   i. For example, the syntax element may be coded with                unary (or truncated unary, or truncated rice, or                truncated binary, or fix-length) binarization process.            -   ii. For example, one or more bins of the syntax element                may be context coded.            -   iii. For example, for those cross-component prediction                modes which classify neighbors into more than one group,                its mode index may be greater than (or less than) the                mode index of the cross-component prediction mode which                treat neighbors as an entire group.            -   iv. Whether to/how to signal the syntax element may                depend on dimensions of the current block.                -   a) For example, the syntax element may be only                    signalled in case of the current block is greater                    than a pre-defined size.                -   b) For example, the syntax element may be only                    signalled in case of the sum of width and height of                    the current block is greater than a pre-defined                    threshold.                -   c) For example, the syntax element may be only                    signalled in case the width is greater than a                    pre-defined threshold and/or height of the current                    block is greater than a pre-defined threshold.                -   d) “greater than” may be replaced by “lower than” or                    “no greater than” or “no lower than”.-   5. Regarding combining cross-component prediction with other    prediction modes for solving the 5^(th) problem, one or more of the    following approaches are disclosed:    -   a. For example, the “non-cross-component prediction” may be a        prediction block derived by intra DM mode.    -   b. For example, the “non-cross-component prediction” may be a        prediction block derived by any intra prediction mode other than        cross-component prediction mode.    -   c. In one example, how to generate the cross-component        prediction (which used for blending/mixing) may be dependent on        a predefined cross-component prediction mode.    -   d. In one example, how to generate the cross-component        prediction (which used for blending/mixing) may be dependent on        an adaptive selected cross-component prediction mode (e.g., a        cross-component prediction mode determined by the cost        calculated from neighbors).    -   e. In one example, a syntax element (e.g., a flag) may be        signalled in the bitstream to specify whether the combined        method (e.g., combining cross-component prediction with a        particular prediction mode) is finally chosen for the current        block coding.        -   i. Alternatively, furthermore, the syntax element may be            conditionally signalled.        -   ii. For example, the syntax element may be only signalled in            case of a particular prediction mode (e.g., intra DM mode)            is used for the current block.        -   iii. For example, the syntax element may be only signalled            in case of some particular prediction modes (e.g., any intra            mode excluding cross-component intra prediction mode) is            used for the current block.        -   iv. Whether to/how to signal the syntax element may depend            on dimensions of the current block.            -   a) For example, the syntax element may be only signalled                in case of the current block is greater than a                pre-defined size.            -   b) For example, the syntax element may be only signalled                in case of the sum of width and height of the current                block is greater than a pre-defined threshold.            -   c) For example, the syntax element may be only signalled                in case the width is greater than a pre-defined                threshold and/or height of the current block is greater                than a pre-defined threshold.            -   d) “greater than” may be replaced by “lower than” or “no                greater than” or “no lower than”.    -   f. In the above statements, a third prediction of the current        block is generated by “Mixture” or “combining” of a first        prediction and a second prediction and the third prediction is        then used to determine the reconstruction with residues at        decoder. “Mixture” or “combining” of the first prediction and        the second prediction and the third prediction may refer to:        -   i. A third prediction is generated as a weighted sum of the            first prediction and the second prediction.            -   a) The weighting values may be fixed such as (1/2, 1/2)            -   b) The weighting values may vary for different positions                in a block.        -   ii. A third prediction is generated as spatial mixture of            the first prediction and the second prediction.            -   a) For some positions, the third prediction is set equal                to the first prediction. For some other positions, the                third prediction is set equal to the second prediction.

While the foregoing disclosure discusses illustrative aspects and/orembodiments, it should be noted that various changes and modificationscould be made herein without departing from the scope of the describedaspects and/or embodiments as defined by the appended claims.Furthermore, although elements of the described aspects and/orembodiments may be described or claimed in the singular, the plural iscontemplated unless limitation to the singular is explicitly stated.Additionally, all or a portion of any aspect and/or embodiment may beutilized with all or a portion of any other aspect and/or embodiment,unless stated otherwise.

The previous description is provided to enable any person havingordinary skill in the art to practice the various aspects describedherein. Various modifications to these aspects will be readily apparentto a person having ordinary skill in the art, and the generic principlesdefined herein may be applied to other aspects. The claims are notintended to be limited to the aspects shown herein, but is to beaccorded the full scope consistent with the language claims, wherereference to an element in the singular is not intended to mean “one andonly one” unless specifically so stated, but rather “one or more.”Unless specifically stated otherwise, the term “some” refers to one ormore. Combinations such as “at least one of A, B, or C,” “one or more ofA, B, or C,” “at least one of A, B, and C,” “one or more of A, B, andC,” and “A, B, C, or any combination thereof” include any combination ofA, B, or C, and may include multiples of A, multiples of B, or multiplesof C. Specifically, combinations such as “at least one of A, B, or C,”“one or more of A, B, or C,” “at least one of A, B, and C,” “one or moreof A, B, and C,” and “A, B, C, or any combination thereof” may be Aonly, B only, C only, A and B, A and C, B and C, or A and B and C, whereany such combinations may contain one or more member or members of A, B,or C. All structural and functional equivalents to the elements of thevarious aspects described throughout this disclosure that are known orlater come to be known to a person having ordinary skill in the art areexpressly incorporated herein by reference and are intended to beencompassed by the claims. Moreover, nothing disclosed herein isintended to be dedicated to the public regardless of whether suchdisclosure is explicitly recited in the claims. The words “module,”“mechanism,” “element,” “device,” and the like may not be a substitutefor the word “means.” As such, no claim element is to be construed as ameans plus function unless the element is expressly recited using thephrase “means for.”

What is claimed is:
 1. A method of video processing, comprising:determining, for a conversion between a current video block of a videothat is a chroma block and a bitstream of the video, utilizing one ormore models for a cross-component prediction associated with across-component prediction mode, the cross-component prediction modebeing a cross-component prediction mode that classifies neighbors of thecurrent video block into one group or a cross-component prediction modethat classifies the neighbors into N groups, N being larger than 1; andperforming the conversion based on the determining.
 2. The method ofclaim 1, wherein: the cross-component prediction mode is selected fromat least two cross-component prediction mode; the at least twocross-component prediction mode include a first cross-componentprediction mode that classifies neighbors of the current video blockinto M groups and a second cross-component prediction mode thatclassifies the neighbors into N groups; M=1, and N is larger than 1; orM is larger than 1, and N is larger than
 1. 3. The method of claim 1,wherein an indicator indicating utilizing the one or more models for thecross-component prediction is included in the bitstream.
 4. The methodof claim 1, wherein a first syntax element indicating a number of modelsfor the cross-component prediction is included in the bitstream.
 5. Themethod of claim 1, wherein a second syntax element indicating utilizinga M-mode cross-component prediction or a N-mode cross-componentprediction is included in the bitstream.
 6. The method of claim 1,further comprising: determining, on-the-fly, to utilize the one or moremodels for the cross-component prediction.
 7. The method of claim 1,further comprising: determining, on-the-fly, a number of models for thecross-component prediction.
 8. The method of claim 6, further comprisingdetermining, on-the-fly, to utilize a M-mode cross-component predictionor a N-mode cross-component prediction, wherein M and N are constants.9. The method of claim 1, further comprising determining to utilize aX-model cross-component prediction method or a Y-model cross-componentprediction method based on a rule associated with neighbor samples,wherein X is greater than or equal to 1 and Y is greater than or equalto
 1. 10. The method of claim 9, wherein: the rule is dependent on acost value or a cost function, wherein the cost value or the costfunction is associated with at least one of a sum of absolutedifferences (SAD), a sum of absolute transformed differences (SATD), amean squared error (MSE), a sum of squared differences (SSD), or a peaksignal-to-noise ratio (PSNR).
 11. The method of claim 10, furthercomprising: calculating the cost values, on-the-fly, associated with theSAD, the SATD, the MSE, the SSD, or the PSNR; and selecting a lowestcost value of the calculated cost values; wherein calculating the costvalue further comprises calculating the cost value based on a distortionbetween original neighbor reconstructed values and model predictedneighbor values.
 12. The method of claim 1, further comprisingdetermining a first number of groups or a second number of modelsutilized for the cross-component prediction; wherein the cross-componentprediction mode is one of a linear mode above, a linear mode left, or across-component linear mode.
 13. The method of claim 1, furthercomprising determining, adaptively, a first number of groups or a secondnumber of models utilized for the cross-component prediction based on atleast one of distributions of neighbors, activities of the neighbors, ordiversities of the neighbors; wherein the first number is greater thanor equal to 1 or the second number is greater than or equal to
 1. 14.The method of claim 13, wherein determining comprises determining avariance of the neighbors.
 15. The method of claim 1, further comprisingdetermining a number of models utilized for the cross-componentprediction based on a number of counted neighbors.
 16. The method ofclaim 15, wherein determining comprises: comparing the number of countedneighbors to a threshold; and determining the number of models to begreater than one in response to the number of counted neighbors beinglarger than the threshold.
 17. The method of claim 16, furthercomprising refraining from utilizing multiple model cross-componentprediction in response to the number of counted neighbors being lowerthan the threshold.
 18. The method of claim 16, wherein the number ofcounted neighbors equals to a first number of neighbor pixels or asecond number of neighbor samples used for the cross-componentprediction.
 19. The method of claim 1, wherein utilizing the one or moremodels comprises utilizing a first model for first neighbor samples anda second model for second neighbor samples for the cross-componentprediction.
 20. The method of claim 19, further comprising determiningto utilize the one or more models based on neighbor samplesclassifications of at least one of sample values, mean values of thesample values, variances of the sample values, distributions of samplevalues, activities, or diversities.
 21. The method of claim 19, wherein:the first model uses a first number of neighbor samples for calculationand the second model uses a second number of neighbor samples forcalculation; and at least one of the first number or the second numberis dependent on a block width of the current video block or a blockheight of the current video block.
 22. The method of claim 1, whereinthe conversion includes encoding the current video block into thebitstream.
 23. The method of claim 1, wherein the conversion includesdecoding the current video block from the bitstream.
 24. The method ofclaim 1, wherein the conversion includes generating the bitstream fromthe current video block; and the method further comprises: storing thebitstream in a non-transitory computer-readable recording medium.
 25. Anapparatus for processing video data comprising a processor and anon-transitory memory with instructions thereon, wherein theinstructions upon execution by the processor, cause the processor to:determine, for a conversion between a current video block of a videothat is a chroma block and a bitstream of the video, utilizing one ormore models for a cross-component prediction associated with across-component prediction mode, the cross-component prediction modebeing a cross-component prediction mode that classifies neighbors of thecurrent video block into one group or a cross-component prediction modethat classifies the neighbors into N groups, N being larger than 1; andperform the conversion based on the determining.
 26. A non-transitorycomputer-readable recording medium storing a bitstream of a video whichis generated by a method performed by a video processing apparatus,wherein the method comprises: determining, for a conversion between acurrent video block of a video that is a chroma block and a bitstream ofthe video, utilizing one or more models for a cross-component predictionassociated with a cross-component prediction mode, the cross-componentprediction mode being a cross-component prediction mode that classifiesneighbors of the current video block into one group or a cross-componentprediction mode that classifies the neighbors into N groups, N beinglarger than 1; and generating the bitstream from the current video blockbased on the determining.
 27. A non-transitory computer-readable storagemedium storing instructions that cause a processor to: determining, fora conversion between a current video block of a video that is a chromablock and a bitstream of the video, utilizing one or more models for across-component prediction associated with a cross-component predictionmode, the cross-component prediction mode being a cross-componentprediction mode that classifies neighbors of the current video blockinto one group or a cross-component prediction mode that classifies theneighbors into N groups, N being larger than 1; and performing theconversion based on the determining.